summaryrefslogtreecommitdiff
path: root/impl/EquationSystemLexer.h
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@carlo-laptop>2012-08-06 22:58:29 +1000
committerCarlo Zancanaro <carlo@carlo-laptop>2012-08-06 22:58:29 +1000
commit42e729d20000eb141b2907ad83630af34f4afea3 (patch)
treee231556126d538d6b61fe099c6245176aeb3df15 /impl/EquationSystemLexer.h
parent77d26a8f2832791587b19351ee1fde207fdda608 (diff)
New variation on the equation system solver.
Much simpler to understand. Basically have a variable assignment which is dynamic and updates with the strategy changes. Similarly have strategy changes easily invalidate the variable assignment. This makes them strongly inter-dependent, but simplifies the implementation considerably. Proving it should be easier like this, too.
Diffstat (limited to 'impl/EquationSystemLexer.h')
-rw-r--r--impl/EquationSystemLexer.h313
1 files changed, 313 insertions, 0 deletions
diff --git a/impl/EquationSystemLexer.h b/impl/EquationSystemLexer.h
new file mode 100644
index 0000000..eed522f
--- /dev/null
+++ b/impl/EquationSystemLexer.h
@@ -0,0 +1,313 @@
+/** \file
+ * This C header file was generated by $ANTLR version 3.4
+ *
+ * - From the grammar source file : EquationSystem.g
+ * - On : 2012-07-09 19:58:46
+ * - for the lexer : EquationSystemLexerLexer
+ *
+ * Editing it, at least manually, is not wise.
+ *
+ * C language generator and runtime by Jim Idle, jimi|hereisanat|idle|dotgoeshere|ws.
+ *
+ *
+ * The lexer
+EquationSystemLexer
+
+has the callable functions (rules) shown below,
+ * which will invoke the code for the associated rule in the source grammar
+ * assuming that the input stream is pointing to a token/text stream that could begin
+ * this rule.
+ *
+ * For instance if you call the first (topmost) rule in a parser grammar, you will
+ * get the results of a full parse, but calling a rule half way through the grammar will
+ * allow you to pass part of a full token stream to the parser, such as for syntax checking
+ * in editors and so on.
+ *
+ * The parser entry points are called indirectly (by function pointer to function) via
+ * a parser context typedef pEquationSystemLexer, which is returned from a call to EquationSystemLexerNew().
+ *
+ * As this is a generated lexer, it is unlikely you will call it 'manually'. However
+ * the methods are provided anyway.
+ *
+ * The methods in pEquationSystemLexer are as follows:
+ *
+ * -
+ void
+ pEquationSystemLexer->COMMA(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->GREATER_EQUAL(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->GUARD(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->MAXIMUM(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->MINIMUM(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->MULT(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->NEWLINE(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->PLUS(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->QUESTION_MARK(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->SUB(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->T__19(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->T__20(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->T__21(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->T__22(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->NUMBER(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->VARIABLE(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->WHITESPACE(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->DIGIT(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->LETTER(pEquationSystemLexer)
+ * -
+ void
+ pEquationSystemLexer->Tokens(pEquationSystemLexer)
+ *
+ * The return type for any particular rule is of course determined by the source
+ * grammar file.
+ */
+// [The "BSD license"]
+// Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC
+// http://www.temporal-wave.com
+// http://www.linkedin.com/in/jimidle
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// 3. The name of the author may not be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef _EquationSystemLexer_H
+#define _EquationSystemLexer_H
+/* =============================================================================
+ * Standard antlr3 C runtime definitions
+ */
+#include <antlr3.h>
+
+/* End of standard antlr 3 runtime definitions
+ * =============================================================================
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Forward declare the context typedef so that we can use it before it is
+// properly defined. Delegators and delegates (from import statements) are
+// interdependent and their context structures contain pointers to each other
+// C only allows such things to be declared if you pre-declare the typedef.
+//
+typedef struct EquationSystemLexer_Ctx_struct EquationSystemLexer, * pEquationSystemLexer;
+
+
+
+#ifdef ANTLR3_WINDOWS
+// Disable: Unreferenced parameter, - Rules with parameters that are not used
+// constant conditional, - ANTLR realizes that a prediction is always true (synpred usually)
+// initialized but unused variable - tree rewrite variables declared but not needed
+// Unreferenced local variable - lexer rule declares but does not always use _type
+// potentially unitialized variable used - retval always returned from a rule
+// unreferenced local function has been removed - susually getTokenNames or freeScope, they can go without warnigns
+//
+// These are only really displayed at warning level /W4 but that is the code ideal I am aiming at
+// and the codegen must generate some of these warnings by necessity, apart from 4100, which is
+// usually generated when a parser rule is given a parameter that it does not use. Mostly though
+// this is a matter of orthogonality hence I disable that one.
+//
+#pragma warning( disable : 4100 )
+#pragma warning( disable : 4101 )
+#pragma warning( disable : 4127 )
+#pragma warning( disable : 4189 )
+#pragma warning( disable : 4505 )
+#pragma warning( disable : 4701 )
+#endif
+
+/** Context tracking structure for
+EquationSystemLexer
+
+ */
+struct EquationSystemLexer_Ctx_struct
+{
+ /** Built in ANTLR3 context tracker contains all the generic elements
+ * required for context tracking.
+ */
+ pANTLR3_LEXER pLexer;
+
+ void
+ (*mCOMMA) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mGREATER_EQUAL) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mGUARD) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mMAXIMUM) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mMINIMUM) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mMULT) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mNEWLINE) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mPLUS) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mQUESTION_MARK) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mSUB) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mT__19) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mT__20) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mT__21) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mT__22) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mNUMBER) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mVARIABLE) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mWHITESPACE) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mDIGIT) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mLETTER) (struct EquationSystemLexer_Ctx_struct * ctx);
+
+ void
+ (*mTokens) (struct EquationSystemLexer_Ctx_struct * ctx);
+ const char * (*getGrammarFileName)();
+ void (*reset) (struct EquationSystemLexer_Ctx_struct * ctx);
+ void (*free) (struct EquationSystemLexer_Ctx_struct * ctx);
+};
+
+// Function protoypes for the constructor functions that external translation units
+// such as delegators and delegates may wish to call.
+//
+ANTLR3_API pEquationSystemLexer EquationSystemLexerNew (
+pANTLR3_INPUT_STREAM
+ instream);
+ANTLR3_API pEquationSystemLexer EquationSystemLexerNewSSD (
+pANTLR3_INPUT_STREAM
+ instream, pANTLR3_RECOGNIZER_SHARED_STATE state);
+
+/** Symbolic definitions of all the tokens that the
+lexer
+ will work with.
+ * \{
+ *
+ * Antlr will define EOF, but we can't use that as it it is too common in
+ * in C header files and that would be confusing. There is no way to filter this out at the moment
+ * so we just undef it here for now. That isn't the value we get back from C recognizers
+ * anyway. We are looking for ANTLR3_TOKEN_EOF.
+ */
+#ifdef EOF
+#undef EOF
+#endif
+#ifdef Tokens
+#undef Tokens
+#endif
+#define EOF -1
+#define T__19 19
+#define T__20 20
+#define T__21 21
+#define T__22 22
+#define COMMA 4
+#define DIGIT 5
+#define GREATER_EQUAL 6
+#define GUARD 7
+#define LETTER 8
+#define MAXIMUM 9
+#define MINIMUM 10
+#define MULT 11
+#define NEWLINE 12
+#define NUMBER 13
+#define PLUS 14
+#define QUESTION_MARK 15
+#define SUB 16
+#define VARIABLE 17
+#define WHITESPACE 18
+#ifdef EOF
+#undef EOF
+#define EOF ANTLR3_TOKEN_EOF
+#endif
+
+#ifndef TOKENSOURCE
+#define TOKENSOURCE(lxr) lxr->pLexer->rec->state->tokSource
+#endif
+
+/* End of token definitions for EquationSystemLexer
+ * =============================================================================
+ */
+/** } */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/* END - Note:Keep extra line feed to satisfy UNIX systems */