diff --git a/parser/nodes.h b/parser/nodes.h index 523e3cb..b8f3620 100644 --- a/parser/nodes.h +++ b/parser/nodes.h @@ -38,6 +38,7 @@ class IntegerNode : public Node public: IntegerNode(int number) { m_number = number; } int getInteger() { return m_number; } + double getNumber() { return m_number; } protected: int m_number; diff --git a/parser/parser.lex b/parser/parser.lex index 7c7e7c4..26b87eb 100644 --- a/parser/parser.lex +++ b/parser/parser.lex @@ -35,7 +35,7 @@ \< return LESS; \> return GREATER; --?[0-9]+ yylval = new NumberNode(atoi(yytext)); return DEC_NUMBER; +-?[0-9]+ yylval = new IntegerNode(atoi(yytext)); return DEC_NUMBER; -?[0-9]*\.[0-9]+ yylval = new NumberNode(atof(yytext)); return REAL_NUMBER; ambient return AMBIENT; diff --git a/parser/parser.yy b/parser/parser.yy index 149c0da..d899714 100644 --- a/parser/parser.yy +++ b/parser/parser.yy @@ -236,13 +236,13 @@ options_items: /* empty */ ; options_item: WIDTH DEC_NUMBER { - $$ = new WidthNode($2->getNumber()); + $$ = new WidthNode($2->getInteger()); } | HEIGHT DEC_NUMBER { - $$ = new HeightNode($2->getNumber()); + $$ = new HeightNode($2->getInteger()); } | MULTISAMPLE DEC_NUMBER { - $$ = new MultisampleNode($2->getNumber()); + $$ = new MultisampleNode($2->getInteger()); } ;