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
|
class PositionNode : public Node
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
@ -226,15 +226,22 @@ options_item: WIDTH DEC_NUMBER {
|
|||||||
|
|
||||||
plane: PLANE LCURLY plane_items RCURLY {
|
plane: PLANE LCURLY plane_items RCURLY {
|
||||||
$$ = new PlaneNode();
|
$$ = new PlaneNode();
|
||||||
|
$$->addChildren($3);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
plane_items: plane_item plane_items
|
plane_items: /* empty */
|
||||||
| shape_item plane_items
|
| plane_item plane_items {
|
||||||
|
$$ = new ItemsNode();
|
||||||
|
$$->addChild($1);
|
||||||
|
$$->addChildren($2);
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
plane_item: POSITION vector COMMA number
|
plane_item: POSITION vector COMMA number {
|
||||||
| shape_item
|
$$ = new PlanePositionNode($2->getVector(), $4->getNumber());
|
||||||
|
}
|
||||||
|
| shape_item { $$ = $1; }
|
||||||
;
|
;
|
||||||
|
|
||||||
radius: RADIUS number {
|
radius: RADIUS number {
|
||||||
@ -272,8 +279,7 @@ shape_items: /* empty */
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
shape_item:
|
shape_item: material { $$ = $1; }
|
||||||
| material { $$ = $1; }
|
|
||||||
;
|
;
|
||||||
|
|
||||||
sphere: SPHERE LCURLY sphere_items RCURLY {
|
sphere: SPHERE LCURLY sphere_items RCURLY {
|
||||||
@ -288,11 +294,6 @@ sphere_items: /* empty */
|
|||||||
$$->addChild($1);
|
$$->addChild($1);
|
||||||
$$->addChildren($2);
|
$$->addChildren($2);
|
||||||
}
|
}
|
||||||
| shape_item sphere_items {
|
|
||||||
$$ = new ItemsNode();
|
|
||||||
$$->addChild($1);
|
|
||||||
$$->addChildren($2);
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
|
|
||||||
sphere_item: radius { $$ = $1; }
|
sphere_item: radius { $$ = $1; }
|
||||||
@ -306,11 +307,11 @@ union: UNION LCURLY boolean_items RCURLY
|
|||||||
;
|
;
|
||||||
|
|
||||||
vector: LESS number COMMA number COMMA number GREATER {
|
vector: LESS number COMMA number COMMA number GREATER {
|
||||||
refptr<Vector> vector = new Vector();
|
refptr<Vector> vec = new Vector();
|
||||||
(*vector)[0] = $2->getNumber();
|
(*vec)[0] = $2->getNumber();
|
||||||
(*vector)[1] = $4->getNumber();
|
(*vec)[1] = $4->getNumber();
|
||||||
(*vector)[2] = $6->getNumber();
|
(*vec)[2] = $6->getNumber();
|
||||||
$$ = new VectorNode(vector);
|
$$ = new VectorNode(vec);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user