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

View File

@ -40,7 +40,7 @@
\< return LESS;
\> 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;
ambient return AMBIENT;

View File

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