cleaner rule matching implementation based on Either

This commit is contained in:
octarine-noise
2021-07-15 00:50:46 +02:00
parent 8ef84718b5
commit 4637e282ce
7 changed files with 354 additions and 300 deletions

View File

@@ -92,14 +92,15 @@ void matchValueToList(List<Node.Value> values) : {
Node.Value matchValue() : {
Token t;
} {
t = <stringLiteral> { return new Node.Value.Literal(t.image); }
t = <stringLiteral>
{ return new Node.Value.Literal(getSource(t), t.image); }
|
"classOf" <parenStart> t = <stringLiteral> <parenEnd>
{ return new Node.Value.ClassOf(t.image); }
{ return new Node.Value.ClassOf(getSource(t), t.image); }
|
"model.texture" <parenStart> t = <stringLiteral> <parenEnd>
{ return new Node.Value.Texture(t.image); }
{ return new Node.Value.Texture(getSource(t), t.image); }
|
"model.tint" <parenStart> t = <stringLiteral> <parenEnd>
{ return new Node.Value.Tint(t.image); }
{ return new Node.Value.Tint(getSource(t), t.image); }
}