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:
parent
04022756e5
commit
793c7afb2d
@ -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 ********/
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user