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);
|
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 ********/
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user