fixed up bison conflicts in grammar
git-svn-id: svn://anubis/fart/trunk@111 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
parent
71a55378c4
commit
70c4785b43
@ -101,6 +101,22 @@ class PlaneNode : public Node
|
||||
{
|
||||
};
|
||||
|
||||
class PlanePositionNode : public Node
|
||||
{
|
||||
public:
|
||||
PlanePositionNode(refptr<Vector> vec, double dist)
|
||||
{
|
||||
m_vector = vec;
|
||||
m_dist = dist;
|
||||
}
|
||||
refptr<Vector> getVector() { return m_vector; }
|
||||
double getNumber() { return m_dist; }
|
||||
|
||||
protected:
|
||||
refptr<Vector> m_vector;
|
||||
double m_dist;
|
||||
};
|
||||
|
||||
class PositionNode : public Node
|
||||
{
|
||||
};
|
||||
|
@ -226,15 +226,22 @@ options_item: WIDTH DEC_NUMBER {
|
||||
|
||||
plane: PLANE LCURLY plane_items RCURLY {
|
||||
$$ = new PlaneNode();
|
||||
$$->addChildren($3);
|
||||
}
|
||||
;
|
||||
|
||||
plane_items: plane_item plane_items
|
||||
| shape_item plane_items
|
||||
plane_items: /* empty */
|
||||
| plane_item plane_items {
|
||||
$$ = new ItemsNode();
|
||||
$$->addChild($1);
|
||||
$$->addChildren($2);
|
||||
}
|
||||
;
|
||||
|
||||
plane_item: POSITION vector COMMA number
|
||||
| shape_item
|
||||
plane_item: POSITION vector COMMA number {
|
||||
$$ = new PlanePositionNode($2->getVector(), $4->getNumber());
|
||||
}
|
||||
| shape_item { $$ = $1; }
|
||||
;
|
||||
|
||||
radius: RADIUS number {
|
||||
@ -272,8 +279,7 @@ shape_items: /* empty */
|
||||
}
|
||||
;
|
||||
|
||||
shape_item:
|
||||
| material { $$ = $1; }
|
||||
shape_item: material { $$ = $1; }
|
||||
;
|
||||
|
||||
sphere: SPHERE LCURLY sphere_items RCURLY {
|
||||
@ -288,11 +294,6 @@ sphere_items: /* empty */
|
||||
$$->addChild($1);
|
||||
$$->addChildren($2);
|
||||
}
|
||||
| shape_item sphere_items {
|
||||
$$ = new ItemsNode();
|
||||
$$->addChild($1);
|
||||
$$->addChildren($2);
|
||||
}
|
||||
;
|
||||
|
||||
sphere_item: radius { $$ = $1; }
|
||||
@ -306,11 +307,11 @@ union: UNION LCURLY boolean_items RCURLY
|
||||
;
|
||||
|
||||
vector: LESS number COMMA number COMMA number GREATER {
|
||||
refptr<Vector> vector = new Vector();
|
||||
(*vector)[0] = $2->getNumber();
|
||||
(*vector)[1] = $4->getNumber();
|
||||
(*vector)[2] = $6->getNumber();
|
||||
$$ = new VectorNode(vector);
|
||||
refptr<Vector> vec = new Vector();
|
||||
(*vec)[0] = $2->getNumber();
|
||||
(*vec)[1] = $4->getNumber();
|
||||
(*vec)[2] = $6->getNumber();
|
||||
$$ = new VectorNode(vec);
|
||||
}
|
||||
;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user