Parsodus(5) -- Syntax rules for Parsodus .pds files ================================================= DESCRIPTION ----------- Input files for Lexesis have a `.pds` extension and have a set of some very simple rules: Variables in the grammar follow the regular expression `<[a-zA-Z_][a-zA-Z0-9_]*>`, and terminals use the same scheme, except using double quotes instead of angular brackets. Furthermore, Parsodus uses a couple of key-value associations, including - *parser*: the parsing algorithm to use - *terminals*: a whitespace separated list of terminals - *lexesis* (optional): a reference to a lexesis specification file. If given, terminals will be read from the lexesis file, and should as such not be specified separately in this file. - *precedence* (optional): a whitespace separated list of `left`, `right`, or `nonassoc` followed by terminals, higher up is a higher precedence - start: a variable to use as the start symbol - grammar: a list of rules (see below) A grammar rule is a variable followed by `::=` followed by a `|`-separated list of rule tails ended with a semicolon. A rule tail is a list of variables and terminals followed by an optional rule name of the form `[name]`. parser: lalr(1) terminals: "A" start: grammar: ::= "A" [single] | "A" "A" [double] ; We are building an LALR(1) parser, with replacement rules, both starting from the start-symbol ``, named appropriately `single` and `double`. Conventionally, terminals are all caps, while variables are lowercase. AUTHORS ------- * Thomas Avé * Robin Jadoul * Kobe Wullaert SEE ALSO -------- Parsodus(1)