removed DEC_NUMBER parsing token and IntegerNode node, replaced with NumberNode

git-svn-id: svn://anubis/fart/branches/scene-file-scripting@337 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
Josh Holtrop 2010-10-06 15:48:33 +00:00
parent 04022756e5
commit 793c7afb2d
3 changed files with 24 additions and 40 deletions

View File

@ -22,11 +22,8 @@ class Node
void addChildren(refptr<Node> other); void addChildren(refptr<Node> other);
std::vector< refptr<Node> > & getChildren() { return m_children; } std::vector< refptr<Node> > & getChildren() { return m_children; }
virtual int getInteger() virtual int getInteger() { return getNumber(); }
{
std::cerr << "Warning: Node::getInteger() called!" << std::endl;
return 0;
}
virtual double getNumber() virtual double getNumber()
{ {
std::cerr << "Warning: Node::getNumber() called!" << std::endl; std::cerr << "Warning: Node::getNumber() called!" << std::endl;
@ -73,17 +70,6 @@ class Node
typedef refptr<Node> NodeRef; typedef refptr<Node> NodeRef;
class IntegerNode : public Node
{
public:
IntegerNode(int number) { m_number = number; }
virtual int getInteger() { return m_number; }
virtual double getNumber() { return m_number; }
protected:
int m_number;
};
class NumberNode : public Node class NumberNode : public Node
{ {
public: public:
@ -139,10 +125,10 @@ class AmbientNode : public VectorNode
AmbientNode(NodeRef vector) : VectorNode(vector) {} AmbientNode(NodeRef vector) : VectorNode(vector) {}
}; };
class AmbientOcclusionNode : public IntegerNode class AmbientOcclusionNode : public NumberNode
{ {
public: public:
AmbientOcclusionNode(int i) : IntegerNode(i) {} AmbientOcclusionNode(NodeRef e) : NumberNode(e) {}
}; };
class BoxNode : public Node class BoxNode : public Node
@ -185,10 +171,10 @@ class ExtrudeNode : public Node
bool isShape() { return true; } bool isShape() { return true; }
}; };
class HeightNode : public IntegerNode class HeightNode : public NumberNode
{ {
public: public:
HeightNode(int i) : IntegerNode(i) {} HeightNode(NodeRef e) : NumberNode(e) {}
}; };
class IdentifierNode : public Node class IdentifierNode : public Node
@ -246,16 +232,16 @@ class MaterialRefNode : public IdentifierNode
bool isMaterial() { return true; } bool isMaterial() { return true; }
}; };
class MaxDepthNode : public IntegerNode class MaxDepthNode : public NumberNode
{ {
public: public:
MaxDepthNode(int i) : IntegerNode(i) {} MaxDepthNode(NodeRef e) : NumberNode(e) {}
}; };
class MultisampleNode : public IntegerNode class MultisampleNode : public NumberNode
{ {
public: public:
MultisampleNode(int i) : IntegerNode(i) {} MultisampleNode(NodeRef e) : NumberNode(e) {}
}; };
class NGonNode : public NumberNode class NGonNode : public NumberNode
@ -452,10 +438,10 @@ class VFOVNode : public NumberNode
VFOVNode(NodeRef e) : NumberNode(e) {} VFOVNode(NodeRef e) : NumberNode(e) {}
}; };
class WidthNode : public IntegerNode class WidthNode : public NumberNode
{ {
public: public:
WidthNode(int i) : IntegerNode(i) {} WidthNode(NodeRef e) : NumberNode(e) {}
}; };
/******** scripting nodes ********/ /******** scripting nodes ********/

View File

@ -40,7 +40,7 @@
\< return LESS; \< return LESS;
\> return GREATER; \> return GREATER;
[0-9]+ *yylval = new IntegerNode(atoi(yytext)); return DEC_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;
ambient return AMBIENT; ambient return AMBIENT;

View File

@ -61,7 +61,6 @@ refptr<Scope> parser_scope;
%token LESS; %token LESS;
%token GREATER; %token GREATER;
%token DEC_NUMBER;
%token REAL_NUMBER; %token REAL_NUMBER;
%token AMBIENT; %token AMBIENT;
@ -341,8 +340,7 @@ material_ref: MATERIAL IDENTIFIER {
} }
; ;
number: DEC_NUMBER { $$ = $1; } number: REAL_NUMBER { $$ = $1; }
| REAL_NUMBER { $$ = $1; }
; ;
ngon: NGON expression COMMA expression { ngon: NGON expression COMMA expression {
@ -393,17 +391,17 @@ options_items: /* empty */
} }
; ;
options_item: WIDTH DEC_NUMBER { options_item: WIDTH expression {
$$ = new WidthNode($2->getInteger()); $$ = new WidthNode($2);
} }
| HEIGHT DEC_NUMBER { | HEIGHT expression {
$$ = new HeightNode($2->getInteger()); $$ = new HeightNode($2);
} }
| MULTISAMPLE DEC_NUMBER { | MULTISAMPLE expression {
$$ = new MultisampleNode($2->getInteger()); $$ = new MultisampleNode($2);
} }
| MAXDEPTH DEC_NUMBER { | MAXDEPTH expression {
$$ = new MaxDepthNode($2->getInteger()); $$ = new MaxDepthNode($2);
} }
| EXPOSURE expression { | EXPOSURE expression {
$$ = new ExposureNode($2); $$ = new ExposureNode($2);
@ -411,8 +409,8 @@ options_item: WIDTH DEC_NUMBER {
| AMBIENT vector3 { | AMBIENT vector3 {
$$ = new AmbientNode($2); $$ = new AmbientNode($2);
} }
| AMBIENT_OCCLUSION DEC_NUMBER { | AMBIENT_OCCLUSION expression {
$$ = new AmbientOcclusionNode($2->getInteger()); $$ = new AmbientOcclusionNode($2);
} }
; ;