Fix bugs
Co-authored-by: Ezequiel Bellver <ebellver@itba.edu.ar> Co-authored-by: Juan Barmasch <jbarmasch@itba.edu.ar>
This commit is contained in:
parent
7b905ec260
commit
af3d848aec
|
@ -1,3 +1,2 @@
|
|||
fun f = 1/x;
|
||||
fun g = f(3) + f'(3)*(x-3) + f''(3)/2 * (x-3)^2 + f'''(3) / 6 * (x-3)^3 + f''''(3) / 24 * (x-3)^4;
|
||||
taylor 5 f;
|
||||
fun g = taylor 5 f;
|
|
@ -1,4 +1,5 @@
|
|||
fun g = (1-x)^(x);
|
||||
fun f = x^2;
|
||||
fun h = x/(x-2);
|
||||
fun g = hohohoh;
|
||||
printCsv g(1)
|
||||
printCsv g(1)
|
||||
fun j = 1/x;
|
||||
printCSV(["g", "f", "h", "j"], [[g(1), f(1), h(1) , j(1), gofohoj(1)]], "example.csv");
|
|
@ -1 +1 @@
|
|||
var x = f(3) * x * 4 + 3;
|
||||
fun f = f(3) * x * 4 + 3;
|
|
@ -67,6 +67,7 @@ typedef enum TokenID {
|
|||
ERR,
|
||||
TAYLOR,
|
||||
ESCAPESTRING,
|
||||
PRINTCSV,
|
||||
DOUBLE,
|
||||
INTEGER,
|
||||
STRING
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
crlf \r\n
|
||||
digit [0-9]
|
||||
char [a-zA-Z]
|
||||
characters [a-zA-Z., ]
|
||||
decimal [.]
|
||||
endline \n
|
||||
/* whitespace [\f\n\r\t\v\0 ] */
|
||||
|
@ -75,6 +76,7 @@ whitespace [ \f\n\r\t\v]
|
|||
"var" { return VAR; }
|
||||
"err" { return ERR; }
|
||||
"taylor" { return TAYLOR; }
|
||||
"printCSV" { return PRINTCSV; }
|
||||
|
||||
|
||||
{digit}+{decimal}{digit}+ { return DoublePatternAction(yytext); }
|
||||
|
@ -83,7 +85,7 @@ whitespace [ \f\n\r\t\v]
|
|||
|
||||
{char}+ { return StringPatternAction(yytext); }
|
||||
|
||||
\"{char}+\" { return EscapeStringPatternAction(yytext); }
|
||||
\"{characters}+\" { return EscapeStringPatternAction(yytext); }
|
||||
|
||||
{whitespace} { IgnoredPatternAction(yytext); }
|
||||
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
%token ERR
|
||||
%token TAYLOR
|
||||
%token ESCAPESTRING
|
||||
%token PRINTCSV
|
||||
%token DOUBLE
|
||||
%token INTEGER
|
||||
%token STRING
|
||||
|
@ -66,31 +67,34 @@
|
|||
|
||||
%%
|
||||
|
||||
program: statements // { $$ = ProgramGrammarAction($1); }
|
||||
program: statements
|
||||
;
|
||||
|
||||
expression: constant
|
||||
| evaluate
|
||||
| integrate
|
||||
| derivative
|
||||
| STRING
|
||||
| expression ADD expression // { $$ = AdditionExpressionGrammarAction($1, $3); }
|
||||
| expression SUB expression // { $$ = SubtractionExpressionGrammarAction($1, $3); }
|
||||
| expression MUL expression // { $$ = MultiplicationExpressionGrammarAction($1, $3); }
|
||||
| expression DIV expression // { $$ = DivisionExpressionGrammarAction($1, $3); }
|
||||
| expression POW expression // { $$ = PowerExpressionGrammarAction($1, $3); }
|
||||
| expression ADD expression
|
||||
| expression SUB expression
|
||||
| expression MUL expression
|
||||
| expression DIV expression
|
||||
| expression POW expression
|
||||
| OPEN_PARENTHESIS expression CLOSE_PARENTHESIS
|
||||
| SUB expression
|
||||
| number
|
||||
;
|
||||
|
||||
domain: STRING LESSER number // { $$ = LesserExpressionGrammarAction($1, $3); }
|
||||
| STRING LESSER_EQUAL number // { $$ = LesserEqualExpressionGrammarAction($1, $3); }
|
||||
| STRING GREATER number // { $$ = GreaterExpressionGrammarAction($1, $3); }
|
||||
| STRING GREATER_EQUAL number // { $$ = GreaterEqualExpressionGrammarAction($1, $3); }
|
||||
| STRING EQUAL number // { $$ = EqualExpressionGrammarAction($1, $3); }
|
||||
| number LESSER STRING // { $$ = LesserExpressionGrammarAction($1, $3); }
|
||||
| number LESSER_EQUAL STRING // { $$ = LesserEqualExpressionGrammarAction($1, $3); }
|
||||
| number GREATER STRING // { $$ = GreaterExpressionGrammarAction($1, $3); }
|
||||
| number GREATER_EQUAL STRING // { $$ = GreaterEqualExpressionGrammarAction($1, $3); }
|
||||
| number EQUAL STRING // { $$ = EqualExpressionGrammarAction($1, $3); }
|
||||
domain: STRING LESSER number
|
||||
| STRING LESSER_EQUAL number
|
||||
| STRING GREATER number
|
||||
| STRING GREATER_EQUAL number
|
||||
| STRING EQUAL number
|
||||
| number LESSER STRING
|
||||
| number LESSER_EQUAL STRING
|
||||
| number GREATER STRING
|
||||
| number GREATER_EQUAL STRING
|
||||
| number EQUAL STRING
|
||||
| number LESSER STRING LESSER number
|
||||
| number LESSER_EQUAL STRING LESSER number
|
||||
| number LESSER STRING LESSER_EQUAL number
|
||||
|
@ -136,19 +140,38 @@ numbers: number
|
|||
|
||||
strings: STRING
|
||||
| STRING COMMA strings
|
||||
;
|
||||
|
||||
numArray: OPEN_BRACKETS numbers CLOSE_BRACKETS
|
||||
;
|
||||
|
||||
stringArray: OPEN_BRACKETS strings CLOSE_BRACKETS
|
||||
numArrays: numArray
|
||||
| numArray COMMA numArrays
|
||||
;
|
||||
|
||||
evaluate: EVALUATE STRING IN number //{ $$ = IntegerConstantGrammarAction($1); }
|
||||
| EVALUATE STRING IN numArray //{ $$ = IntegerConstantGrammarAction($1); }
|
||||
| STRING OPEN_PARENTHESIS number CLOSE_PARENTHESIS //{ $$ = IntegerConstantGrammarAction($1); }
|
||||
| EVALUATE stringArray IN number //{ $$ = IntegerConstantGrammarAction($1); }
|
||||
| EVALUATE stringArray IN numArray //{ $$ = IntegerConstantGrammarAction($1); }
|
||||
| stringArray OPEN_PARENTHESIS number CLOSE_PARENTHESIS //{ $$ = IntegerConstantGrammarAction($1); }
|
||||
arrayNumArray: OPEN_BRACKETS numArrays CLOSE_BRACKETS
|
||||
;
|
||||
|
||||
stringArray: OPEN_BRACKETS strings CLOSE_BRACKETS
|
||||
;
|
||||
|
||||
escapeString: ESCAPESTRING
|
||||
| ESCAPESTRING ADD escapeString
|
||||
;
|
||||
|
||||
escapeStrings: escapeString
|
||||
| escapeString COMMA escapeStrings
|
||||
;
|
||||
|
||||
escapeStringArray: OPEN_BRACKETS escapeStrings CLOSE_BRACKETS
|
||||
;
|
||||
|
||||
evaluate: EVALUATE STRING IN number
|
||||
| EVALUATE STRING IN numArray
|
||||
| STRING OPEN_PARENTHESIS number CLOSE_PARENTHESIS
|
||||
| EVALUATE stringArray IN number
|
||||
| EVALUATE stringArray IN numArray
|
||||
| stringArray OPEN_PARENTHESIS number CLOSE_PARENTHESIS
|
||||
;
|
||||
|
||||
integrate: INTEGRATE STRING BETWEEN number AND_INT number
|
||||
|
@ -170,6 +193,7 @@ statement: evaluate SEMICOLON
|
|||
| ifelse_statement
|
||||
| for_statement
|
||||
| while_statement
|
||||
| printCSV SEMICOLON
|
||||
| print SEMICOLON
|
||||
| declare_variable SEMICOLON
|
||||
| assign_variable SEMICOLON
|
||||
|
@ -177,11 +201,7 @@ statement: evaluate SEMICOLON
|
|||
|
||||
print: PRINT OPEN_PARENTHESIS number CLOSE_PARENTHESIS
|
||||
| PRINT OPEN_PARENTHESIS STRING CLOSE_PARENTHESIS
|
||||
| PRINT OPEN_PARENTHESIS escapedString CLOSE_PARENTHESIS
|
||||
;
|
||||
|
||||
escapedString: ESCAPESTRING
|
||||
| ESCAPESTRING ADD escapedString
|
||||
| PRINT OPEN_PARENTHESIS escapeString CLOSE_PARENTHESIS
|
||||
;
|
||||
|
||||
statements: statement
|
||||
|
@ -219,14 +239,16 @@ while_statement: WHILE OPEN_PARENTHESIS boolean CLOSE_PARENTHESIS OPEN_BRACKETS
|
|||
;
|
||||
|
||||
declare_variable: VAR STRING
|
||||
| VAR STRING ASSIGN number
|
||||
| VAR STRING ASSIGN expression
|
||||
;
|
||||
;
|
||||
|
||||
number: evaluate
|
||||
printCSV: PRINTCSV OPEN_PARENTHESIS escapeStringArray COMMA arrayNumArray COMMA escapeString CLOSE_PARENTHESIS
|
||||
;
|
||||
|
||||
number: constant
|
||||
| evaluate
|
||||
| integrate
|
||||
| derivative
|
||||
| constant
|
||||
| number ADD number
|
||||
| number DIV number
|
||||
| number SUB number
|
||||
|
|
Loading…
Reference in New Issue