# Functional parsers (exemplified with an integration requests language)

GROUPS:
 Anton Antonov 4 Votes I implemented and uploaded a package for construction of functional parsers:see : https://github.com/antononcube/MathematicaForPrediction/blob/master/FunctionalParsers.mHere is a link to a slide show that gives an introduction to how the package is used:https://github.com/antononcube/MathematicaForPrediction/blob/master/Documentation/Functional%20parsers%20for%20an%20integration%20requests%20language%20grammar.pdf  Here is the EBNF grammar of the integration requests language:  = 'compute' | 'what' , 'is' ;  = , [ 'the' ] ;  = [ 'numerical' | 'symbolic' ] , 'integral' ;  = [ 'symbolically' | 'numerically' ] , 'integrate' | 'integrate' , ( 'numerically' | 'symbolically' ) ;  = '_String' ;  = '_IdentifierString' ;  = 'R' | 'R+' | 'R-' ;  = [ 'from' ] , '_WordString' , [ 'to' | 'and' ] , '_WordString';  = ( [ 'in' | 'over' ] , [ 'the' ] , [ 'interval' ] ) , ( | ) ; = ( 'for' | 'of' ) , , ; = , , 'of' ; = ( | ) , , ( | ) ; = ( | ) , ; = | ;The grammar can be represented with the following graph:The mind map was hand made with MindNode Pro. Generally, the branches represent alternatives, but if two branches are connected the direction of the arrow connecting them shows a sequence combination.The package provides functions for automatic generation of parsers from EBNF grammars.The parsers are generated like this:code = ToTokens[integrationGrammar];GenerateParsersFromEBNF[code];Here is a table with the interpretation of integration request commands: