bfbcompiler/src/frontend/syntactic-analysis/bison-actions.h

79 lines
5.6 KiB
C

#ifndef BISON_ACTIONS_HEADER
#define BISON_ACTIONS_HEADER
#include "../../backend/support/shared.h"
Program * ProgramGrammarAction(Statement * statement);
Statement * StatementEvaluateGrammarAction(Evaluate * evaluate);
Statement * StatementIntegrateGrammarAction(Integrate * integrate);
Statement * StatementDerivativeGrammarAction(Derivative * derivative);
Statement * StatementIfGrammarAction(If * if_st);
Statement * StatementForGrammarAction(For * for_st);
Statement * StatementWhileGrammarAction(While * while_st);
Statement * StatementPrintGrammarAction(Print * print);
Statement * StatementDeclareFunctionGrammarAction(Function * function);
Statement * StatementAssignVariableGrammarAction(AssignVariable * variable);
Statement * StatementDeclareVariableGrammarAction(Variable * variable);
Statement * StatementsGrammarAction(Statement * stat1, Statement * stat2);
Expression * ExpressionOperatorAddGrammarAction(Expression * firstExpression, Expression * secondExpression);
Expression * ExpressionOperatorSubGrammarAction(Expression * firstExpression, Expression * secondExpression);
Expression * ExpressionOperatorMulGrammarAction(Expression * firstExpression, Expression * secondExpression);
Expression * ExpressionOperatorDivGrammarAction(Expression * firstExpression, Expression * secondExpression);
Expression * ExpressionOperatorPowGrammarAction(Expression * firstExpression, Expression * secondExpression);
Expression * ExpressionEvaluateGrammarAction(Evaluate * evaluate);
Expression * ExpressionDerivativeGrammarAction(Derivative * derivative);
Expression * ExpressionIntegrateGrammarAction(Integrate * integrate);
Expression * ExpressionPositiveConstantGrammarAction(double value);
Expression * ExpressionNegativeGrammarAction(Expression * exp);
Expression * ExpressionParenthesisGrammarAction(Expression * exp);
Expression * ExpressionIdGrammarAction(char * id);
Expression * ExpressionsGrammarAction(Expression * exp1, Expression * exp2);
Domain * DomainGreaterOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression);
Domain * DomainLesserOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression);
Domain * DomainLesserEqualOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression);
Domain * DomainGreaterEqualOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression);
Domain * DomainEqualOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression);
Domain * DomainNotEqualOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression);
Domain * DomainLesserLesserOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression, Expression * thirdExpression);
Domain * DomainLesserEqualLesserOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression, Expression * thirdExpression);
Domain * DomainLesserLesserEqualOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression, Expression * thirdExpression);
Domain * DomainLesserEqualLesserEqualOperatorGrammarAction(Expression * firstExpression, Expression * secondExpression, Expression * thirdExpression);
Boolean * BooleanDomainGrammarAction(Domain * domain);
Boolean * BooleanAndGrammarAction(Boolean * left, Boolean * right);
Boolean * BooleanOrGrammarAction(Boolean * left, Boolean * right);
Boolean * NotBooleanAction(Boolean * notBoolean);
Boolean * BooleanGrammarAction(Boolean * boolen);
Function * DeclareFunctionGrammarAction(char * id, Function * func);
Function * FunctionsGrammarAction(Function * func1, Function * func2);
Function * CompositeFunctionGrammarAction(Composite * composite);
Function * ExpressionFunctionGrammarAction(Expression * expression);
Function * ExpressionDomainFunctionGrammarAction(Expression * expression, Domain * domain);
Composite * CompositeIdGrammarAction(char * id1, char * id2);
Composite * CompositeCompGrammarAction(char * id, Composite * composite);
Print * PrintExpressionGrammarAction(Expression * expression);
Print * PrintStringGrammarAction(char * string);
If * IfBlockGrammarAction(Boolean * boolean, Block * block);
If * IfElseBlockGrammarAction(Boolean * boolean, Block * block, Block * else_block);
While * WhileBlockGrammarAction(Boolean * boolean, Block * block);
For * ForBlockGrammarAction(Variable * init_variable, Boolean * boolean, AssignVariable * action_variable, Block * block);
For * ForBlockNoVarGrammarAction(Boolean * boolean, AssignVariable * action_variable, Block * block);
Block * BlockGrammarAction(Statement * statement);
Derivative * SimpleDerivativeGrammarAction(char * id, Expression * expression);
Derivative * GradedDerivativeGrammarAction(int grade, char * id, Expression * expression);
Integrate * IntegrateGrammarAction(char * id, Expression * lExp, Expression * rExp);
Integrate * ErroredIntegrateGrammarAction(Integrate * integrate, double error);
Evaluate * EvaluateGrammarAction(char * id, Expression * expression);
AssignVariable * AssignVariableAddGrammarAction(char * id, Expression * expression);
AssignVariable * AssignVariableSubGrammarAction(char * id, Expression * expression);
AssignVariable * AssignVariableMulGrammarAction(char * id, Expression * expression);
AssignVariable * AssignVariableDivGrammarAction(char * id, Expression * expression);
AssignVariable * AssignVariableIncGrammarAction(char * id);
AssignVariable * AssignVariableDecGrammarAction(char * id);
AssignVariable * AssignVariableGrammarAction(char * id, Expression * expression);
Variable * DeclareVariableGrammarAction(char * id);
Variable * DeclareValuedVariableGrammarAction(char * id, Expression * expression);
char * EscapedStringGrammarAction(char * str);
char * EscapedStringsGrammarAction(char * str1, char * str2);
#endif