mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-26 17:20:53 +01:00
[poincare] Some level of 1.2E3 support
Change-Id: I9618967de161a553ae35ec6dbcf1486c16dadb0d
This commit is contained in:
@@ -77,24 +77,25 @@
|
||||
*/
|
||||
|
||||
[0-9]+ { poincare_expression_yylval.string = yytext; return DIGITS; }
|
||||
E { return EE; }
|
||||
[A-Zxntab] { poincare_expression_yylval.character = yytext[0]; return SYMBOL; }
|
||||
ans { poincare_expression_yylval.character = Symbol::Ans; return SYMBOL; }
|
||||
sin { poincare_expression_yylval.expression = new Sine(); return FUNCTION; }
|
||||
cos { poincare_expression_yylval.expression = new Cosine(); return FUNCTION; }
|
||||
tan { poincare_expression_yylval.expression = new Tangent(); return FUNCTION; }
|
||||
log { poincare_expression_yylval.expression = new Logarithm(); return FUNCTION; }
|
||||
\+ { return(PLUS); }
|
||||
\- { return(MINUS); }
|
||||
\* { return(MULTIPLY); }
|
||||
\/ { return(DIVIDE); }
|
||||
\^ { return(POW); }
|
||||
\( { return(LEFT_PARENTHESIS); }
|
||||
\) { return(RIGHT_PARENTHESIS); }
|
||||
\{ { return(LEFT_BRACE); }
|
||||
\} { return(RIGHT_BRACE); }
|
||||
\[ { return(LEFT_BRACKET); }
|
||||
\] { return(RIGHT_BRACKET); }
|
||||
\, { return(COMMA); }
|
||||
\+ { return PLUS; }
|
||||
\- { return MINUS; }
|
||||
\* { return MULTIPLY; }
|
||||
\/ { return DIVIDE; }
|
||||
\^ { return POW; }
|
||||
\( { return LEFT_PARENTHESIS; }
|
||||
\) { return RIGHT_PARENTHESIS; }
|
||||
\{ { return LEFT_BRACE; }
|
||||
\} { return RIGHT_BRACE; }
|
||||
\[ { return LEFT_BRACKET; }
|
||||
\] { return RIGHT_BRACKET; }
|
||||
\, { return COMMA; }
|
||||
\. { return DOT; }
|
||||
|
||||
%%
|
||||
|
||||
@@ -43,7 +43,6 @@ void poincare_expression_yyerror(Expression ** expressionOutput, char const *msg
|
||||
%token <function> FUNCTION
|
||||
|
||||
/* Operator tokens */
|
||||
%token DOT
|
||||
%token PLUS
|
||||
%token MINUS
|
||||
%token MULTIPLY
|
||||
@@ -56,6 +55,8 @@ void poincare_expression_yyerror(Expression ** expressionOutput, char const *msg
|
||||
%token LEFT_BRACKET
|
||||
%token RIGHT_BRACKET
|
||||
%token COMMA
|
||||
%token DOT
|
||||
%token EE
|
||||
|
||||
/* Make the operators left associative.
|
||||
* This makes 1 - 2 - 5’ be ‘(1 - 2) - 5’ instead of ‘1 - (2 - 5)’.
|
||||
@@ -105,6 +106,10 @@ number:
|
||||
| MINUS DIGITS { $$ = new Integer($2, true); }
|
||||
| DIGITS DOT DIGITS { $$ = new Float($1, false, $3, nullptr, false); }
|
||||
| MINUS DIGITS DOT DIGITS { $$ = new Float($2, true, $4, nullptr, false); }
|
||||
| DIGITS DOT DIGITS EE DIGITS { $$ = new Float($1, false, $3, $5, false); }
|
||||
| MINUS DIGITS DOT DIGITS EE DIGITS { $$ = new Float($2, true, $4, $6, false); }
|
||||
| DIGITS DOT DIGITS EE MINUS DIGITS { $$ = new Float($1, false, $3, $6, true); }
|
||||
| MINUS DIGITS DOT DIGITS EE MINUS DIGITS { $$ = new Float($2, true, $4, $7, true); }
|
||||
|
||||
exp:
|
||||
number { $$ = $1; }
|
||||
|
||||
Reference in New Issue
Block a user