Wolfram Language Paclet Repository
Community-contributed installable additions to the Wolfram Language
Functional parsers
Contributed by: Anton Antonov
This paclet provides a complete set of functional parsers and automatic parser generation from grammar specifications in Extended Backus-Naur Form.
To install this paclet in your Wolfram Language environment,
evaluate this code:
PacletInstall["AntonAntonov/FunctionalParsers"]
To load the code after installation, evaluate this code:
Needs["AntonAntonov`FunctionalParsers`"]
Here is an EBNF grammar:
In[1]:= |
Here we generate random sentences with the grammar above:
In[2]:= |
Out[3]= |
Make a parser for a family of (two) simple sentences:
In[4]:= |
Here we parse a sentence adhering to the grammar of the defined parser:
In[5]:= |
Out[5]= |
Here we parse the other sentence of that grammar:
In[6]:= |
Out[6]= |
These sentences are not be parsed:
In[7]:= |
Out[7]= |
Here is another parser over longer, more complete integration sentences:
In[8]:= |
Here we parse a sentence (adhering to the grammar of the defined parser):
In[9]:= |
Out[9]= |
Here is another parsing:
In[10]:= |
Out[10]= |
Rewrite the parser above with suitable interpretation:
In[11]:= |
Here we parse a numerical integration command:
In[12]:= |
Out[12]= |
Here we parse a symbolic integration command:
In[13]:= |
Out[13]= |
It is much easier to follow the parser and interpreter specification using Extended Backus-Naur Form (EBNF):
In[14]:= |
Here we generate random sentences with the grammar string above:
In[15]:= |
Out[16]= |
Here we generate the parsers:
In[17]:= |
Here we parse -- and interpret -- integration commands:
In[18]:= |
Out[19]= |