]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/cpp/DataBoardTest/libantlr3c-3.2/include/antlr3parser.h
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / libantlr3c-3.2 / include / antlr3parser.h
1 /** \file\r
2  * Base implementation of an ANTLR3 parser.\r
3  *\r
4  *\r
5  */\r
6 #ifndef _ANTLR3_PARSER_H\r
7 #define _ANTLR3_PARSER_H\r
8 \r
9 // [The "BSD licence"]\r
10 // Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC\r
11 // http://www.temporal-wave.com\r
12 // http://www.linkedin.com/in/jimidle\r
13 //\r
14 // All rights reserved.\r
15 //\r
16 // Redistribution and use in source and binary forms, with or without\r
17 // modification, are permitted provided that the following conditions\r
18 // are met:\r
19 // 1. Redistributions of source code must retain the above copyright\r
20 //    notice, this list of conditions and the following disclaimer.\r
21 // 2. Redistributions in binary form must reproduce the above copyright\r
22 //    notice, this list of conditions and the following disclaimer in the\r
23 //    documentation and/or other materials provided with the distribution.\r
24 // 3. The name of the author may not be used to endorse or promote products\r
25 //    derived from this software without specific prior written permission.\r
26 //\r
27 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\r
28 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\r
29 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
30 // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\r
31 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
32 // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
33 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
34 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
35 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
36 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
37 \r
38 #include    <antlr3defs.h>\r
39 #include    <antlr3baserecognizer.h>\r
40 \r
41 #ifdef __cplusplus\r
42 extern "C" {\r
43 #endif\r
44 \r
45 /** This is the main interface for an ANTLR3 parser.\r
46  */\r
47 typedef struct ANTLR3_PARSER_struct\r
48 {\r
49     /** All superstructure implementers of this interface require a pointer to their selves,\r
50      *  which they can reference using the super pointer here.\r
51      */\r
52     void                        * super;\r
53 \r
54     /** A pointer to the base recognizer, where most of the parser functions actually\r
55      *  live because they are shared between parser and tree parser and this is the\r
56      *  easier way than copying the interface all over the place. Macros hide this\r
57      *  for the generated code so it is easier on the eye (though not the debugger ;-).\r
58      */\r
59     pANTLR3_BASE_RECOGNIZER                     rec;\r
60 \r
61     /** A provider of a tokenstream interface, for the parser to consume\r
62      *  tokens from.\r
63      */\r
64     pANTLR3_TOKEN_STREAM                        tstream;\r
65 \r
66         /** A pointer to a function that installs a debugger object (it also\r
67          *  installs the debugging versions of the parser methods. This means that \r
68          *  a non debug parser incurs no overhead because of the debugging stuff.\r
69          */\r
70         void                                    (*setDebugListener)     (struct ANTLR3_PARSER_struct    * parser, pANTLR3_DEBUG_EVENT_LISTENER dbg);\r
71 \r
72     /** A pointer to a function that installs a token stream \r
73      * for the parser.\r
74      */\r
75     void                                        (*setTokenStream)       (struct ANTLR3_PARSER_struct    * parser, pANTLR3_TOKEN_STREAM);\r
76 \r
77     /** A pointer to a function that returns the token stream for this \r
78      *  parser.\r
79      */\r
80     pANTLR3_TOKEN_STREAM        (*getTokenStream)       (struct ANTLR3_PARSER_struct    * parser);\r
81 \r
82     /** Pointer to a function that knows how to free resources of an ANTLR3 parser.\r
83      */\r
84     void                        (*free)                 (struct ANTLR3_PARSER_struct    * parser);\r
85 \r
86 }\r
87     ANTLR3_PARSER;\r
88 \r
89 #ifdef __cplusplus\r
90 }\r
91 #endif\r
92 \r
93 #endif\r