Download Menhir Reference Manual
Transcript
Contents 1 Foreword 3 2 Usage 3 3 Lexical conventions 5 4 Syntax of grammar specifications 4.1 Declarations . . . . . . . . . . . 4.1.1 Headers . . . . . . . . . 4.1.2 Parameters . . . . . . . 4.1.3 Tokens . . . . . . . . . 4.1.4 Priority and associativity 4.1.5 Types . . . . . . . . . . 4.1.6 Start symbols . . . . . . 4.2 Rules . . . . . . . . . . . . . . 4.2.1 Production groups . . . 4.2.2 Productions . . . . . . . 4.2.3 Producers . . . . . . . . 4.2.4 Actuals . . . . . . . . . 5 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 6 6 7 7 7 7 7 8 8 8 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Advanced features 5.1 Splitting specifications over multiple files 5.2 Parameterizing rules . . . . . . . . . . . 5.3 Inlining . . . . . . . . . . . . . . . . . . 5.4 The standard library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 . 8 . 9 . 11 . 12 . . . . 12 13 13 17 17 Conflicts 6.1 When is a conflict benign? . . . . . . . . . . 6.2 How are severe conflicts explained? . . . . . 6.3 How are severe conflicts resolved in the end? 6.4 End-of-stream conflicts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Positions 18 8 Error handling and recovery 18 9 Using Menhir as an interpreter 21 9.1 Sentences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9.2 Outcomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9.3 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 10 A comparison with ocamlyacc 23 11 Questions and Answers 24 12 Technical background 24 13 Acknowledgements 24