added <= and >= operators
git-svn-id: svn://anubis/fart/trunk@345 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
parent
700e47901b
commit
c4fc36bb5c
@ -95,9 +95,15 @@ NodeRef BoolExpressionNode::evaluate()
|
|||||||
case '<':
|
case '<':
|
||||||
r = o < t ? 0 : 1;
|
r = o < t ? 0 : 1;
|
||||||
break;
|
break;
|
||||||
|
case 'l':
|
||||||
|
r = o <= t ? 0 : 1;
|
||||||
|
break;
|
||||||
case '>':
|
case '>':
|
||||||
r = o > t ? 0 : 1;
|
r = o > t ? 0 : 1;
|
||||||
break;
|
break;
|
||||||
|
case 'g':
|
||||||
|
r = o >= t ? 0 : 1;
|
||||||
|
break;
|
||||||
case '=':
|
case '=':
|
||||||
r = o == t ? 0 : 1;
|
r = o == t ? 0 : 1;
|
||||||
break;
|
break;
|
||||||
|
@ -38,7 +38,8 @@
|
|||||||
\( return LPAREN;
|
\( return LPAREN;
|
||||||
\) return RPAREN;
|
\) return RPAREN;
|
||||||
\< return LESS;
|
\< return LESS;
|
||||||
\> return GREATER;
|
\<= return LESSEQ;
|
||||||
|
\>= return GREATEREQ;
|
||||||
|
|
||||||
[0-9]+ *yylval = new NumberNode(atof(yytext)); return REAL_NUMBER;
|
[0-9]+ *yylval = new NumberNode(atof(yytext)); return REAL_NUMBER;
|
||||||
[0-9]*\.[0-9]+ *yylval = new NumberNode(atof(yytext)); return REAL_NUMBER;
|
[0-9]*\.[0-9]+ *yylval = new NumberNode(atof(yytext)); return REAL_NUMBER;
|
||||||
|
@ -59,7 +59,9 @@ refptr<Scope> parser_scope;
|
|||||||
%token LPAREN;
|
%token LPAREN;
|
||||||
%token RPAREN;
|
%token RPAREN;
|
||||||
%token LESS;
|
%token LESS;
|
||||||
|
%token LESSEQ;
|
||||||
%token GREATER;
|
%token GREATER;
|
||||||
|
%token GREATEREQ;
|
||||||
|
|
||||||
%token REAL_NUMBER;
|
%token REAL_NUMBER;
|
||||||
|
|
||||||
@ -603,9 +605,15 @@ stmt_expression: assignment { $$ = $1; }
|
|||||||
bool_expression: expression LESS expression {
|
bool_expression: expression LESS expression {
|
||||||
$$ = new BoolExpressionNode('<', $1, $3);
|
$$ = new BoolExpressionNode('<', $1, $3);
|
||||||
}
|
}
|
||||||
|
| expression LESSEQ expression {
|
||||||
|
$$ = new BoolExpressionNode('l', $1, $3);
|
||||||
|
}
|
||||||
| expression GREATER expression {
|
| expression GREATER expression {
|
||||||
$$ = new BoolExpressionNode('>', $1, $3);
|
$$ = new BoolExpressionNode('>', $1, $3);
|
||||||
}
|
}
|
||||||
|
| expression GREATEREQ expression {
|
||||||
|
$$ = new BoolExpressionNode('g', $1, $3);
|
||||||
|
}
|
||||||
| expression EQUALS expression {
|
| expression EQUALS expression {
|
||||||
$$ = new BoolExpressionNode('=', $1, $3);
|
$$ = new BoolExpressionNode('=', $1, $3);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user