DynamicGrammars.jl is a package for string parsing with context-free grammars in pure julia.
Grammars are represented as RuleSets with specified terminal symbol type. Each rule in a ruleset has a
name, an index and a definition. The definition is a node which can have following types:
Reference: resolves the definition of another ruleStructure: used to create nodes in the abstract syntax treeTerminal: matches a string part using deterministic automataConcatenation: matches multiple nodes in orderRepetition: explicit "array" of nodes, can specify minimal/maximal countAlternative: matches one of multiple alternative nodes