Skip to content

Instantly share code, notes, and snippets.

@VladD2
Created December 30, 2015 15:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save VladD2/80341baa5da6b2256fc9 to your computer and use it in GitHub Desktop.
Save VladD2/80341baa5da6b2256fc9 to your computer and use it in GitHub Desktop.
syntax Node = Key=Reference sm NodeContent;
syntax NodeContent = "{" outline_begin_before inl NodeMembers nl d outline_end "}";
syntax NodeMember
{
| Attribute = Key=Reference sm ":" sm Value
| Node = Node
}
syntax Value
{
| StringLiteral
| Number
| Object = NodeContent;
| Array = "[" outline_begin_before Values outline_end "]";
}
// ----------------------
abstract ast NodeMember : BindableAst
{
Key : Reference;
}
ast Node : NodeMember
{
NodeMembers : NodeMember*;
}
ast Attribute : NodeMember
{
Val : Value;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment