reworked expressions to implement precedence properly
git-svn-id: svn://anubis/fart/trunk@367 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
parent
c77697c39d
commit
4e3ce00056
@ -355,16 +355,20 @@ vector3: LESS expression COMMA expression COMMA expression GREATER {
|
||||
}
|
||||
;
|
||||
|
||||
expression: term { $$ = $1; }
|
||||
| expression TIMES term { $$ = new BinOpNode('*', $1, $3); }
|
||||
| expression DIVIDE term { $$ = new BinOpNode('/', $1, $3); }
|
||||
| expression MOD term { $$ = new BinOpNode('%', $1, $3); }
|
||||
| expression POW term { $$ = new BinOpNode('^', $1, $3); }
|
||||
expression: expression TIMES expression { $$ = new BinOpNode('*', $1, $3); }
|
||||
| expression DIVIDE expression { $$ = new BinOpNode('/', $1, $3); }
|
||||
| expression PLUS expression { $$ = new BinOpNode('+', $1, $3); }
|
||||
| expression MINUS expression { $$ = new BinOpNode('-', $1, $3); }
|
||||
| expression MOD expression { $$ = new BinOpNode('%', $1, $3); }
|
||||
| expression POW expression { $$ = new BinOpNode('^', $1, $3); }
|
||||
| MINUS expression %prec UMINUS {
|
||||
$$ = new BinOpNode('-', new NumberNode(0.0), $2);
|
||||
}
|
||||
| stmt_expression { $$ = $1; }
|
||||
| function_call { $$ = $1; }
|
||||
| stmt_expression { $$ = $1; }
|
||||
| function_call { $$ = $1; }
|
||||
| number { $$ = $1; }
|
||||
| VARREF { $$ = $1; }
|
||||
| LPAREN expression RPAREN { $$ = $2; }
|
||||
;
|
||||
|
||||
maybe_expression: /* empty */
|
||||
@ -405,16 +409,6 @@ bool_expression: expression LESS expression {
|
||||
}
|
||||
;
|
||||
|
||||
term: factor { $$ = $1; }
|
||||
| term PLUS factor { $$ = new BinOpNode('+', $1, $3); }
|
||||
| term MINUS factor { $$ = new BinOpNode('-', $1, $3); }
|
||||
;
|
||||
|
||||
factor: number { $$ = $1; }
|
||||
| VARREF { $$ = $1; }
|
||||
| LPAREN expression RPAREN { $$ = $2; }
|
||||
;
|
||||
|
||||
assignment: VARREF ASSIGN expression {
|
||||
$$ = new AssignmentNode($1, $3);
|
||||
}
|
||||
|
@ -105,8 +105,6 @@ scene
|
||||
light
|
||||
{
|
||||
position <100, -100, 100>
|
||||
radius 0.3
|
||||
jitter 3
|
||||
}
|
||||
|
||||
plane
|
||||
|
Loading…
x
Reference in New Issue
Block a user