* TODO Add an optional ";" before the "end" keyword
; -*-org-*-
* DONE Add an optional ";" before the "end" keyword
* TODO Add precedence values and management in the signature
* TODO Add (+) notation style to prevent the infix use of +
* TODO Add syntactic extensions to handle associativity and precedence of infix operators
* TODO Add error (and warning) messages management to the Error module, and make a difference between "real" parsing errors and errors resulting from evaluating the parsing against some environment. The latter can be output all together (may be some limit to be set)
* TODO Move from dypgen to menhir in scripts
* TODO change README and INSTALL files:
+ [ ] to indicate new dependencies (menhir, logs...)
+ [ ] to document syntax extensions for infix operators, precedence of the latter over application. Highest precedence for prefix operators
"A term or a right parenthesis \")\" are expected.\n"
|3->
"An identifier (the name of a bound variable) or a dot \".\" are expected.\n"
|7|2->
|5|2->
"An identifier (the name of a bound variable) is expected.\n"
|42|10|19|40->
|40|7|19|38->
"A term or a colon \":\" are expected.\n"
|9|6->
|4->
"A term is expected.\n"
|62->
|60->
"An identifier (i.e., a type or a term) or a symbol are expected.\n"
|74->
|72->
"A comma \",\" or an interpretation symbol \":=\" are expected.\n"
|75->
|73->
"An identifier (i.e., a type or a term) or a symbol are expected.\n"
|67|66|44|43->
|65|64|42|41->
"A term or a type are expected.\n"
|58->
|56->
"An arrow (\"->\" or \"=>\"), a right parenthesis, a term, or a semi-colon are expected.\n"
|45->
|43->
"An arrow (\"->\" or \"=>\"), a right parenthesis, or a semi-colon are expected.\n"
|47->
|45->
"An arrow (\"->\" or \"=>\"), or a semi-colon are expected.\n"
|72|59->
|70|57->
"An end of input is expected (no more keyword or semi-colon or colon).\n"
|70->
|68->
"An arrow (\"->\" or \"=>), a term, or a semi-colon are expected.\n"
|54|52|56|48->
|52|50|54|46->
"A type expression is expected.\n"
|79->
|77->
"An equality symbol \"=\" is expected.\n"
|127|80->
|124|78->
"A signature entry (type declaration, type definition, term declaration, or term definition) is expected.\n"
|77->
|75->
"A declaration of a signature (keyword \"signature\") or of a lexicon (keyword \"lexicon\" or \"nl_lexicon\") is expected.\n"
|135->
|133->
"An identifier (the name of a new lexicon) is expected.\n"
|136->
|134->
"A left parenthesis \"(\" is expected.\n"
|138->
|136->
"A right parenthesis \")\" is expected.\n"
|139->
|137->
"A colon \":\" is expected.\n"
|140->
|138->
"An identifier (the name of a signature) is expected.\n"
|141->
|139->
"An equality symbol \"=\" is expected.\n"
|146->
|141->
"A semi-colon \";\" or the \"end\" keyword are expected.\n"
|149->
|147->
"An identifier (the name of a new lexicon) is expected\n"
|150->
|148->
"A left parenthesis \"(\" is expected.\n"
|151->
|149->
"An identifier (the name of a signature) is expected.\n"
|152->
|150->
"A right parenthesis \")\" is expected.\n"
|153->
|151->
"A expression in the form of \": <identifier> =\" where the identifier is the name of a signature is expected.\n"
|154|137|78->
|152|135|76->
"An identifier (the name of a signature) is expected.\n"
|155->
|153->
"An equality symbold \"=\" is expected.\n"
|156|147|142->
|154|142|140->
"A lexicon entry of the form \"<term> := <term>;\" or \"<type> := <type>\" is expected.\n"
|161|160->
|157|156->
"An expression representing the composition of lexicons is expected.\n"
|166->
|162->
"The composition operator \"<<\" or a right parenthesis \")\" is expected.\n"
|163|170->
|159|166->
"The composition operator \"<<\" is expected.\n"
|164->
|160->
"An identifier (the name of a lexicon), or an expression representing the composition of lexicons is expected.\n"
|176->
|172->
"An identifier or a keyword (\"infix\", \"prefix, or \"binder\") is expected.\n"
|89|81->
|87|79->
"A symbol is expected.\n"
|90|82->
|88|80->
"A typing judgmenet in the form of \": <type>;\" or a defintion in the form of \"= <term>: <type>;\" is expected.\n"
|91|83->
|89|81->
"A typing judgment in the form \"term : <type>;\" is expected.\n"
|92|84->
|90|82->
"A typing judgment in the form \": <type>;\" is expected.\n"
|95|93|87|85->
|93|91|85|83->
"A type is expected after the colon \":\".\n"
|97->
|95->
"A comma \",\" or a colon \":\" are expected in a type or term declaration. An equality symbol \"=\" is expected in a type or term definition.\n"
|98->
|96->
"A definition in the form of \"<term> : <type>;\" or a type definition of the form \"<type> : type;\" is expected after a term or a type defintion, resp.\n"
|102->
|100->
"A typing judgement in the form of \": <type>\" is expected in a term definition.\n"
|103->
|101->
"A type is expected in a term definition.\n"
|105->
|103->
"A typing judgement in the form of \": <type>;\" or a type definition with a colon and the \"type\" keyword in the form of \": type;\" is expectedin a term or a type definition.\n"
|118->
|116->
"The \"type\" keyword or a typing judgement in the form of \": <type>;\" is expected after the definition of a type or a term, resp.\n"
|99->
|97->
"In a type definition, a colon \":\" is expeced before the keyword \"type\".\n"
|100->
|98->
"In a type definition, the keyword \"type\" is expected after the colon \":\".\n"
|108|107->
|106|105->
"After a term or type declaration of the form \"<ident1>, <ident2>\", a type declaration of the form \": type;\" (where type is a keyword) or a typing judgment of the form \": <type>;\" is expected.\n"
|130->
|126->
"After a term declaration of the form \"<term>: \", a type expression and a semicolon \"<type> ;\" are expected.\n"
|178->
|174->
"After a term declaration of the form \"<term>: <type>\", a semicolon \";\" is expected.\n"
|110->
|108->
"An identidier (the name of the binder) is expected after the keyword \"binder\".\n"
|111->
|109->
"A typing judgement in the form of \": <type>\" or a definition in the form of \"= <term> : <type>\" is expected after the declaration of a binder.\n"
|112->
|110->
"A term is expected as right hand side of a term definition.\n"
|113->
|111->
"A typing judgment in the form of \": <type>\" is expected after defining a binder.\n"
|180|11|32->
|176|8->
"A typing judgment in the form of \"<term> : <type>\" is expected.\n"
|182->
|178->
"A typing judgement in the form of \": <type>\" is expected after a term.\n"