Happy: Difference between revisions
BrettGiles (talk | contribs) (Initial set up of page.) |
m (To be deleted if no new content appears...) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
==Happy== | ==Happy== | ||
[[Category:Compiler | [[Category:Compiler tools]] | ||
[[Category:Pages to be removed]] | |||
This is a parser generator in the general style of yacc. See http://www.haskell.org/happy for downloads and documentation. | This is a parser generator in the general style of yacc. See http://www.haskell.org/happy for downloads and documentation. | ||
Line 12: | Line 14: | ||
* Grammar definition : The set of rules and actions | * Grammar definition : The set of rules and actions | ||
* The module trailer (Optional) : More Haskell code that can be used in the actions. | * The module trailer (Optional) : More Haskell code that can be used in the actions. | ||
{{Template:Stub}} |
Latest revision as of 12:00, 19 April 2021
Happy
This is a parser generator in the general style of yacc. See http://www.haskell.org/happy for downloads and documentation.
Usage
happy uses a language description file to create a Haskell module that will do the parsing. Typical usage in in the second stage of a compiler, where it will be used to generate an abstract syntax tree.
Input File Structure
A happy file consists of four parts.
- The module header (Optional) : This is where you may define the module name and import other Haskell modules
- Various directives : This is used for definition of the tokens, the type of scanner to use, precedence setting.
- Grammar definition : The set of rules and actions
- The module trailer (Optional) : More Haskell code that can be used in the actions.
This article is a stub. You can help by expanding it.