From 9ff09510d188bde805746b4f7771d593c4a681d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sat, 23 Dec 2017 15:13:39 -0800 Subject: [PATCH] Added Lemon Parser Generator tool. --- makefile | 33 +- scripts/genie.lua | 1 + scripts/lemon.lua | 21 + tools/bin/windows/bin2c.exe | Bin 818437 -> 859136 bytes tools/bin/windows/lemon.exe | Bin 0 -> 99840 bytes tools/bin/windows/lempar.c | 981 +++++++ tools/lemon/lemon.c | 5466 +++++++++++++++++++++++++++++++++++ tools/lemon/lempar.c | 981 +++++++ 8 files changed, 7480 insertions(+), 3 deletions(-) create mode 100644 scripts/lemon.lua create mode 100644 tools/bin/windows/lemon.exe create mode 100644 tools/bin/windows/lempar.c create mode 100644 tools/lemon/lemon.c create mode 100644 tools/lemon/lempar.c diff --git a/makefile b/makefile index 3026a6a..906e4ce 100644 --- a/makefile +++ b/makefile @@ -160,10 +160,11 @@ else OS=windows BUILD_PROJECT_DIR=gmake-mingw-gcc BUILD_OUTPUT_DIR=win32_mingw-gcc -BUILD_TOOLS_CONFIG=release32 +BUILD_TOOLS_CONFIG=release64 EXE=.exe endif +# bin2c .build/osx64_clang/bin/bin2cRelease: .build/projects/gmake-osx $(SILENT) make -C .build/projects/gmake-osx bin2c config=$(BUILD_TOOLS_CONFIG) @@ -179,10 +180,36 @@ tools/bin/linux/bin2c: .build/linux64_gcc/bin/bin2cRelease .build/win64_mingw-gcc/bin/bin2cRelease.exe: .build/projects/gmake-mingw-gcc $(SILENT) make -C .build/projects/gmake-mingw-gcc bin2c config=$(BUILD_TOOLS_CONFIG) -tools/bin/windows/bin2c.exe: .build/win64_mingw-gcc/bin/bin2cRelease +tools/bin/windows/bin2c.exe: .build/win64_mingw-gcc/bin/bin2cRelease.exe $(SILENT) cp $(<) $(@) -tools: tools/bin/$(OS)/bin2c$(EXE) +bin2c: tools/bin/$(OS)/bin2c$(EXE) + +# lemon +.build/osx64_clang/bin/lemonRelease: .build/projects/gmake-osx + $(SILENT) make -C .build/projects/gmake-osx lemon config=$(BUILD_TOOLS_CONFIG) + +tools/bin/darwin/lemon: .build/osx64_clang/bin/lemonRelease + $(SILENT) cp $(<) $(@) + +.build/linux64_gcc/bin/lemonRelease: .build/projects/gmake-linux + $(SILENT) make -C .build/projects/gmake-linux lemon config=$(BUILD_TOOLS_CONFIG) + +tools/bin/linux/lemon: .build/linux64_gcc/bin/lemonRelease + $(SILENT) cp $(<) $(@) + +.build/win64_mingw-gcc/bin/lemonRelease.exe: .build/projects/gmake-mingw-gcc + $(SILENT) make -C .build/projects/gmake-mingw-gcc lemon config=$(BUILD_TOOLS_CONFIG) + +tools/bin/windows/lemon.exe: .build/win64_mingw-gcc/bin/lemonRelease.exe + $(SILENT) cp $(<) $(@) + +tools/bin/$(OS)/lempar.c: tools/lemon/lempar.c + $(SILENT) cp $(<) $(@) + +lemon: tools/bin/$(OS)/lemon$(EXE) tools/bin/$(OS)/lempar.c + +tools: bin2c lemon dist: tools/bin/darwin/bin2c tools/bin/linux/bin2c tools/bin/windows/bin2c.exe diff --git a/scripts/genie.lua b/scripts/genie.lua index aab0a8a..4131667 100644 --- a/scripts/genie.lua +++ b/scripts/genie.lua @@ -39,6 +39,7 @@ end dofile "bx.lua" dofile "bin2c.lua" +dofile "lemon.lua" project "bx.test" kind "ConsoleApp" diff --git a/scripts/lemon.lua b/scripts/lemon.lua new file mode 100644 index 0000000..2d49812 --- /dev/null +++ b/scripts/lemon.lua @@ -0,0 +1,21 @@ +-- +-- Copyright 2010-2017 Branimir Karadzic. All rights reserved. +-- License: https://github.com/bkaradzic/bx#license-bsd-2-clause +-- + +project "lemon" + kind "ConsoleApp" + + files { + path.join(BX_DIR, "tools/lemon/lemon.c") + } + + configuration { "not vs*" } + buildoptions { + "-Wno-sign-compare", + "-Wno-unused-parameter", + } + + configuration {} + + strip() diff --git a/tools/bin/windows/bin2c.exe b/tools/bin/windows/bin2c.exe index 143fffd09dd3ae2115336e051589ad79caaf0c50..2c01cdd806575bcd013b28211aa2f74a39ea97f6 100755 GIT binary patch literal 859136 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�lwB&HHEjSZ_ifG{c~sfu5UDz0FU}s(vy2 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%0Dl;{rpa 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 WWg!pQKl!^Pk>vk71^xe7lK%y;KRuKH literal 818437 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≶VpS&4GEXuR`C#w{2f&Z#VPzVEAGMM5=x4Xbo&? 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 DkjyvT diff --git a/tools/bin/windows/lemon.exe b/tools/bin/windows/lemon.exe new file mode 100644 index 0000000000000000000000000000000000000000..5de0c8d6fda856197296e81f22f3b00ac1aef717 GIT binary patch literal 99840 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 +/************ Begin %include sections from the grammar ************************/ +%% +/**************** End of %include directives **********************************/ +/* These constants specify the various numeric values for terminal symbols +** in a format understandable to "makeheaders". This section is blank unless +** "lemon" is run with the "-m" command-line option. +***************** Begin makeheaders token definitions *************************/ +%% +/**************** End makeheaders token definitions ***************************/ + +/* The next sections is a series of control #defines. +** various aspects of the generated parser. +** YYCODETYPE is the data type used to store the integer codes +** that represent terminal and non-terminal symbols. +** "unsigned char" is used if there are fewer than +** 256 symbols. Larger types otherwise. +** YYNOCODE is a number of type YYCODETYPE that is not used for +** any terminal or nonterminal symbol. +** YYFALLBACK If defined, this indicates that one or more tokens +** (also known as: "terminal symbols") have fall-back +** values which should be used if the original symbol +** would not parse. This permits keywords to sometimes +** be used as identifiers, for example. +** YYACTIONTYPE is the data type used for "action codes" - numbers +** that indicate what to do in response to the next +** token. +** ParseTOKENTYPE is the data type used for minor type for terminal +** symbols. Background: A "minor type" is a semantic +** value associated with a terminal or non-terminal +** symbols. For example, for an "ID" terminal symbol, +** the minor type might be the name of the identifier. +** Each non-terminal can have a different minor type. +** Terminal symbols all have the same minor type, though. +** This macros defines the minor type for terminal +** symbols. +** YYMINORTYPE is the data type used for all minor types. +** This is typically a union of many types, one of +** which is ParseTOKENTYPE. The entry in the union +** for terminal symbols is called "yy0". +** YYSTACKDEPTH is the maximum depth of the parser's stack. If +** zero the stack is dynamically sized using realloc() +** ParseARG_SDECL A static variable declaration for the %extra_argument +** ParseARG_PDECL A parameter declaration for the %extra_argument +** ParseARG_STORE Code to store %extra_argument into yypParser +** ParseARG_FETCH Code to extract %extra_argument from yypParser +** YYERRORSYMBOL is the code number of the error symbol. If not +** defined, then do no error processing. +** YYNSTATE the combined number of states. +** YYNRULE the number of rules in the grammar +** YY_MAX_SHIFT Maximum value for shift actions +** YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions +** YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions +** YY_MIN_REDUCE Minimum value for reduce actions +** YY_MAX_REDUCE Maximum value for reduce actions +** YY_ERROR_ACTION The yy_action[] code for syntax error +** YY_ACCEPT_ACTION The yy_action[] code for accept +** YY_NO_ACTION The yy_action[] code for no-op +*/ +#ifndef INTERFACE +# define INTERFACE 1 +#endif +/************* Begin control #defines *****************************************/ +%% +/************* End control #defines *******************************************/ + +/* Define the yytestcase() macro to be a no-op if is not already defined +** otherwise. +** +** Applications can choose to define yytestcase() in the %include section +** to a macro that can assist in verifying code coverage. For production +** code the yytestcase() macro should be turned off. But it is useful +** for testing. +*/ +#ifndef yytestcase +# define yytestcase(X) +#endif + + +/* Next are the tables used to determine what action to take based on the +** current state and lookahead token. These tables are used to implement +** functions that take a state number and lookahead value and return an +** action integer. +** +** Suppose the action integer is N. Then the action is determined as +** follows +** +** 0 <= N <= YY_MAX_SHIFT Shift N. That is, push the lookahead +** token onto the stack and goto state N. +** +** N between YY_MIN_SHIFTREDUCE Shift to an arbitrary state then +** and YY_MAX_SHIFTREDUCE reduce by rule N-YY_MIN_SHIFTREDUCE. +** +** N between YY_MIN_REDUCE Reduce by rule N-YY_MIN_REDUCE +** and YY_MAX_REDUCE +** +** N == YY_ERROR_ACTION A syntax error has occurred. +** +** N == YY_ACCEPT_ACTION The parser accepts its input. +** +** N == YY_NO_ACTION No such action. Denotes unused +** slots in the yy_action[] table. +** +** The action table is constructed as a single large table named yy_action[]. +** Given state S and lookahead X, the action is computed as either: +** +** (A) N = yy_action[ yy_shift_ofst[S] + X ] +** (B) N = yy_default[S] +** +** The (A) formula is preferred. The B formula is used instead if: +** (1) The yy_shift_ofst[S]+X value is out of range, or +** (2) yy_lookahead[yy_shift_ofst[S]+X] is not equal to X, or +** (3) yy_shift_ofst[S] equal YY_SHIFT_USE_DFLT. +** (Implementation note: YY_SHIFT_USE_DFLT is chosen so that +** YY_SHIFT_USE_DFLT+X will be out of range for all possible lookaheads X. +** Hence only tests (1) and (2) need to be evaluated.) +** +** The formulas above are for computing the action when the lookahead is +** a terminal symbol. If the lookahead is a non-terminal (as occurs after +** a reduce action) then the yy_reduce_ofst[] array is used in place of +** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of +** YY_SHIFT_USE_DFLT. +** +** The following are the tables generated in this section: +** +** yy_action[] A single table containing all actions. +** yy_lookahead[] A table containing the lookahead for each entry in +** yy_action. Used to detect hash collisions. +** yy_shift_ofst[] For each state, the offset into yy_action for +** shifting terminals. +** yy_reduce_ofst[] For each state, the offset into yy_action for +** shifting non-terminals after a reduce. +** yy_default[] Default action for each state. +** +*********** Begin parsing tables **********************************************/ +%% +/********** End of lemon-generated parsing tables *****************************/ + +/* The next table maps tokens (terminal symbols) into fallback tokens. +** If a construct like the following: +** +** %fallback ID X Y Z. +** +** appears in the grammar, then ID becomes a fallback token for X, Y, +** and Z. Whenever one of the tokens X, Y, or Z is input to the parser +** but it does not parse, the type of the token is changed to ID and +** the parse is retried before an error is thrown. +** +** This feature can be used, for example, to cause some keywords in a language +** to revert to identifiers if they keyword does not apply in the context where +** it appears. +*/ +#ifdef YYFALLBACK +static const YYCODETYPE yyFallback[] = { +%% +}; +#endif /* YYFALLBACK */ + +/* The following structure represents a single element of the +** parser's stack. Information stored includes: +** +** + The state number for the parser at this level of the stack. +** +** + The value of the token stored at this level of the stack. +** (In other words, the "major" token.) +** +** + The semantic value stored at this level of the stack. This is +** the information used by the action routines in the grammar. +** It is sometimes called the "minor" token. +** +** After the "shift" half of a SHIFTREDUCE action, the stateno field +** actually contains the reduce action for the second half of the +** SHIFTREDUCE. +*/ +struct yyStackEntry { + YYACTIONTYPE stateno; /* The state-number, or reduce action in SHIFTREDUCE */ + YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ +}; +typedef struct yyStackEntry yyStackEntry; + +/* The state of the parser is completely contained in an instance of +** the following structure */ +struct yyParser { + yyStackEntry *yytos; /* Pointer to top element of the stack */ +#ifdef YYTRACKMAXSTACKDEPTH + int yyhwm; /* High-water mark of the stack */ +#endif +#ifndef YYNOERRORRECOVERY + int yyerrcnt; /* Shifts left before out of the error */ +#endif + ParseARG_SDECL /* A place to hold %extra_argument */ +#if YYSTACKDEPTH<=0 + int yystksz; /* Current side of the stack */ + yyStackEntry *yystack; /* The parser's stack */ + yyStackEntry yystk0; /* First stack entry */ +#else + yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + yyStackEntry *yystackEnd; /* Last entry in the stack */ +#endif +}; +typedef struct yyParser yyParser; + +#ifndef NDEBUG +#include +static FILE *yyTraceFILE = 0; +static char *yyTracePrompt = 0; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* +** Turn parser tracing on by giving a stream to which to write the trace +** and a prompt to preface each trace message. Tracing is turned off +** by making either argument NULL +** +** Inputs: +**

+** +** Outputs: +** None. +*/ +void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ + yyTraceFILE = TraceFILE; + yyTracePrompt = zTracePrompt; + if( yyTraceFILE==0 ) yyTracePrompt = 0; + else if( yyTracePrompt==0 ) yyTraceFILE = 0; +} +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing shifts, the names of all terminals and nonterminals +** are required. The following table supplies these names */ +static const char *const yyTokenName[] = { +%% +}; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing reduce actions, the names of all rules are required. +*/ +static const char *const yyRuleName[] = { +%% +}; +#endif /* NDEBUG */ + + +#if YYSTACKDEPTH<=0 +/* +** Try to increase the size of the parser stack. Return the number +** of errors. Return 0 on success. +*/ +static int yyGrowStack(yyParser *p){ + int newSize; + int idx; + yyStackEntry *pNew; + + newSize = p->yystksz*2 + 100; + idx = p->yytos ? (int)(p->yytos - p->yystack) : 0; + if( p->yystack==&p->yystk0 ){ + pNew = malloc(newSize*sizeof(pNew[0])); + if( pNew ) pNew[0] = p->yystk0; + }else{ + pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); + } + if( pNew ){ + p->yystack = pNew; + p->yytos = &p->yystack[idx]; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sStack grows from %d to %d entries.\n", + yyTracePrompt, p->yystksz, newSize); + } +#endif + p->yystksz = newSize; + } + return pNew==0; +} +#endif + +/* Datatype of the argument to the memory allocated passed as the +** second argument to ParseAlloc() below. This can be changed by +** putting an appropriate #define in the %include section of the input +** grammar. +*/ +#ifndef YYMALLOCARGTYPE +# define YYMALLOCARGTYPE size_t +#endif + +/* Initialize a new parser that has already been allocated. +*/ +void ParseInit(void *yypParser){ + yyParser *pParser = (yyParser*)yypParser; +#ifdef YYTRACKMAXSTACKDEPTH + pParser->yyhwm = 0; +#endif +#if YYSTACKDEPTH<=0 + pParser->yytos = NULL; + pParser->yystack = NULL; + pParser->yystksz = 0; + if( yyGrowStack(pParser) ){ + pParser->yystack = &pParser->yystk0; + pParser->yystksz = 1; + } +#endif +#ifndef YYNOERRORRECOVERY + pParser->yyerrcnt = -1; +#endif + pParser->yytos = pParser->yystack; + pParser->yystack[0].stateno = 0; + pParser->yystack[0].major = 0; +#if YYSTACKDEPTH>0 + pParser->yystackEnd = &pParser->yystack[YYSTACKDEPTH-1]; +#endif +} + +#ifndef Parse_ENGINEALWAYSONSTACK +/* +** This function allocates a new parser. +** The only argument is a pointer to a function which works like +** malloc. +** +** Inputs: +** A pointer to the function used to allocate memory. +** +** Outputs: +** A pointer to a parser. This pointer is used in subsequent calls +** to Parse and ParseFree. +*/ +void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)){ + yyParser *pParser; + pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) ); + if( pParser ) ParseInit(pParser); + return pParser; +} +#endif /* Parse_ENGINEALWAYSONSTACK */ + + +/* The following function deletes the "minor type" or semantic value +** associated with a symbol. The symbol can be either a terminal +** or nonterminal. "yymajor" is the symbol code, and "yypminor" is +** a pointer to the value to be deleted. The code used to do the +** deletions is derived from the %destructor and/or %token_destructor +** directives of the input grammar. +*/ +static void yy_destructor( + yyParser *yypParser, /* The parser */ + YYCODETYPE yymajor, /* Type code for object to destroy */ + YYMINORTYPE *yypminor /* The object to be destroyed */ +){ + ParseARG_FETCH; + switch( yymajor ){ + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are *not* used + ** inside the C code. + */ +/********* Begin destructor definitions ***************************************/ +%% +/********* End destructor definitions *****************************************/ + default: break; /* If no destructor action specified: do nothing */ + } +} + +/* +** Pop the parser's stack once. +** +** If there is a destructor routine associated with the token which +** is popped from the stack, then call it. +*/ +static void yy_pop_parser_stack(yyParser *pParser){ + yyStackEntry *yytos; + assert( pParser->yytos!=0 ); + assert( pParser->yytos > pParser->yystack ); + yytos = pParser->yytos--; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sPopping %s\n", + yyTracePrompt, + yyTokenName[yytos->major]); + } +#endif + yy_destructor(pParser, yytos->major, &yytos->minor); +} + +/* +** Clear all secondary memory allocations from the parser +*/ +void ParseFinalize(void *p){ + yyParser *pParser = (yyParser*)p; + while( pParser->yytos>pParser->yystack ) yy_pop_parser_stack(pParser); +#if YYSTACKDEPTH<=0 + if( pParser->yystack!=&pParser->yystk0 ) free(pParser->yystack); +#endif +} + +#ifndef Parse_ENGINEALWAYSONSTACK +/* +** Deallocate and destroy a parser. Destructors are called for +** all stack elements before shutting the parser down. +** +** If the YYPARSEFREENEVERNULL macro exists (for example because it +** is defined in a %include section of the input grammar) then it is +** assumed that the input pointer is never NULL. +*/ +void ParseFree( + void *p, /* The parser to be deleted */ + void (*freeProc)(void*) /* Function used to reclaim memory */ +){ +#ifndef YYPARSEFREENEVERNULL + if( p==0 ) return; +#endif + ParseFinalize(p); + (*freeProc)(p); +} +#endif /* Parse_ENGINEALWAYSONSTACK */ + +/* +** Return the peak depth of the stack for a parser. +*/ +#ifdef YYTRACKMAXSTACKDEPTH +int ParseStackPeak(void *p){ + yyParser *pParser = (yyParser*)p; + return pParser->yyhwm; +} +#endif + +/* +** Find the appropriate action for a parser given the terminal +** look-ahead token iLookAhead. +*/ +static unsigned int yy_find_shift_action( + yyParser *pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->yytos->stateno; + + if( stateno>=YY_MIN_REDUCE ) return stateno; + assert( stateno <= YY_SHIFT_COUNT ); + do{ + i = yy_shift_ofst[stateno]; + assert( iLookAhead!=YYNOCODE ); + i += iLookAhead; + if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ +#ifdef YYFALLBACK + YYCODETYPE iFallback; /* Fallback token */ + if( iLookAhead %s\n", + yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + } +#endif + assert( yyFallback[iFallback]==0 ); /* Fallback loop must terminate */ + iLookAhead = iFallback; + continue; + } +#endif +#ifdef YYWILDCARD + { + int j = i - iLookAhead + YYWILDCARD; + if( +#if YY_SHIFT_MIN+YYWILDCARD<0 + j>=0 && +#endif +#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT + j0 + ){ +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[YYWILDCARD]); + } +#endif /* NDEBUG */ + return yy_action[j]; + } + } +#endif /* YYWILDCARD */ + return yy_default[stateno]; + }else{ + return yy_action[i]; + } + }while(1); +} + +/* +** Find the appropriate action for a parser given the non-terminal +** look-ahead token iLookAhead. +*/ +static int yy_find_reduce_action( + int stateno, /* Current state number */ + YYCODETYPE iLookAhead /* The look-ahead token */ +){ + int i; +#ifdef YYERRORSYMBOL + if( stateno>YY_REDUCE_COUNT ){ + return yy_default[stateno]; + } +#else + assert( stateno<=YY_REDUCE_COUNT ); +#endif + i = yy_reduce_ofst[stateno]; + assert( i!=YY_REDUCE_USE_DFLT ); + assert( iLookAhead!=YYNOCODE ); + i += iLookAhead; +#ifdef YYERRORSYMBOL + if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ + return yy_default[stateno]; + } +#else + assert( i>=0 && iyytos>yypParser->yystack ) yy_pop_parser_stack(yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ +/******** Begin %stack_overflow code ******************************************/ +%% +/******** End %stack_overflow code ********************************************/ + ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ +} + +/* +** Print tracing information for a SHIFT action +*/ +#ifndef NDEBUG +static void yyTraceShift(yyParser *yypParser, int yyNewState){ + if( yyTraceFILE ){ + if( yyNewStateyytos->major], + yyNewState); + }else{ + fprintf(yyTraceFILE,"%sShift '%s'\n", + yyTracePrompt,yyTokenName[yypParser->yytos->major]); + } + } +} +#else +# define yyTraceShift(X,Y) +#endif + +/* +** Perform a shift action. +*/ +static void yy_shift( + yyParser *yypParser, /* The parser to be shifted */ + int yyNewState, /* The new state to shift in */ + int yyMajor, /* The major token to shift in */ + ParseTOKENTYPE yyMinor /* The minor token to shift in */ +){ + yyStackEntry *yytos; + yypParser->yytos++; +#ifdef YYTRACKMAXSTACKDEPTH + if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){ + yypParser->yyhwm++; + assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack) ); + } +#endif +#if YYSTACKDEPTH>0 + if( yypParser->yytos>yypParser->yystackEnd ){ + yypParser->yytos--; + yyStackOverflow(yypParser); + return; + } +#else + if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz] ){ + if( yyGrowStack(yypParser) ){ + yypParser->yytos--; + yyStackOverflow(yypParser); + return; + } + } +#endif + if( yyNewState > YY_MAX_SHIFT ){ + yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE; + } + yytos = yypParser->yytos; + yytos->stateno = (YYACTIONTYPE)yyNewState; + yytos->major = (YYCODETYPE)yyMajor; + yytos->minor.yy0 = yyMinor; + yyTraceShift(yypParser, yyNewState); +} + +/* The following table contains information about every rule that +** is used during the reduce. +*/ +static const struct { + YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + signed char nrhs; /* Negative of the number of RHS symbols in the rule */ +} yyRuleInfo[] = { +%% +}; + +static void yy_accept(yyParser*); /* Forward Declaration */ + +/* +** Perform a reduce action and the shift that must immediately +** follow the reduce. +** +** The yyLookahead and yyLookaheadToken parameters provide reduce actions +** access to the lookahead token (if any). The yyLookahead will be YYNOCODE +** if the lookahead token has already been consumed. As this procedure is +** only called from one place, optimizing compilers will in-line it, which +** means that the extra parameters have no performance impact. +*/ +static void yy_reduce( + yyParser *yypParser, /* The parser */ + unsigned int yyruleno, /* Number of the rule by which to reduce */ + int yyLookahead, /* Lookahead token, or YYNOCODE if none */ + ParseTOKENTYPE yyLookaheadToken /* Value of the lookahead token */ +){ + int yygoto; /* The next state */ + int yyact; /* The next action */ + yyStackEntry *yymsp; /* The top of the parser's stack */ + int yysize; /* Amount to pop the stack */ + ParseARG_FETCH; + yymsp = yypParser->yytos; +#ifndef NDEBUG + if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ + yysize = yyRuleInfo[yyruleno].nrhs; + fprintf(yyTraceFILE, "%sReduce [%s], go to state %d.\n", yyTracePrompt, + yyRuleName[yyruleno], yymsp[yysize].stateno); + } +#endif /* NDEBUG */ + + /* Check that the stack is large enough to grow by a single entry + ** if the RHS of the rule is empty. This ensures that there is room + ** enough on the stack to push the LHS value */ + if( yyRuleInfo[yyruleno].nrhs==0 ){ +#ifdef YYTRACKMAXSTACKDEPTH + if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){ + yypParser->yyhwm++; + assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack)); + } +#endif +#if YYSTACKDEPTH>0 + if( yypParser->yytos>=yypParser->yystackEnd ){ + yyStackOverflow(yypParser); + return; + } +#else + if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ + if( yyGrowStack(yypParser) ){ + yyStackOverflow(yypParser); + return; + } + yymsp = yypParser->yytos; + } +#endif + } + + switch( yyruleno ){ + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line + ** { ... } // User supplied code + ** #line + ** break; + */ +/********** Begin reduce actions **********************************************/ +%% +/********** End reduce actions ************************************************/ + }; + assert( yyrulenoYY_MAX_SHIFT && yyact<=YY_MAX_SHIFTREDUCE) ); + + /* It is not possible for a REDUCE to be followed by an error */ + assert( yyact!=YY_ERROR_ACTION ); + + if( yyact==YY_ACCEPT_ACTION ){ + yypParser->yytos += yysize; + yy_accept(yypParser); + }else{ + yymsp += yysize+1; + yypParser->yytos = yymsp; + yymsp->stateno = (YYACTIONTYPE)yyact; + yymsp->major = (YYCODETYPE)yygoto; + yyTraceShift(yypParser, yyact); + } +} + +/* +** The following code executes when the parse fails +*/ +#ifndef YYNOERRORRECOVERY +static void yy_parse_failed( + yyParser *yypParser /* The parser */ +){ + ParseARG_FETCH; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + } +#endif + while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ +/************ Begin %parse_failure code ***************************************/ +%% +/************ End %parse_failure code *****************************************/ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} +#endif /* YYNOERRORRECOVERY */ + +/* +** The following code executes when a syntax error first occurs. +*/ +static void yy_syntax_error( + yyParser *yypParser, /* The parser */ + int yymajor, /* The major type of the error token */ + ParseTOKENTYPE yyminor /* The minor type of the error token */ +){ + ParseARG_FETCH; +#define TOKEN yyminor +/************ Begin %syntax_error code ****************************************/ +%% +/************ End %syntax_error code ******************************************/ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* +** The following is executed when the parser accepts +*/ +static void yy_accept( + yyParser *yypParser /* The parser */ +){ + ParseARG_FETCH; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + } +#endif +#ifndef YYNOERRORRECOVERY + yypParser->yyerrcnt = -1; +#endif + assert( yypParser->yytos==yypParser->yystack ); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ +/*********** Begin %parse_accept code *****************************************/ +%% +/*********** End %parse_accept code *******************************************/ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* The main parser program. +** The first argument is a pointer to a structure obtained from +** "ParseAlloc" which describes the current state of the parser. +** The second argument is the major token number. The third is +** the minor token. The fourth optional argument is whatever the +** user wants (and specified in the grammar) and is available for +** use by the action routines. +** +** Inputs: +**
    +**
  • A pointer to the parser (an opaque structure.) +**
  • The major token number. +**
  • The minor token number. +**
  • An option argument of a grammar-specified type. +**
+** +** Outputs: +** None. +*/ +void Parse( + void *yyp, /* The parser */ + int yymajor, /* The major token code number */ + ParseTOKENTYPE yyminor /* The value for the token */ + ParseARG_PDECL /* Optional %extra_argument parameter */ +){ + YYMINORTYPE yyminorunion; + unsigned int yyact; /* The parser action. */ +#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY) + int yyendofinput; /* True if we are at the end of input */ +#endif +#ifdef YYERRORSYMBOL + int yyerrorhit = 0; /* True if yymajor has invoked an error */ +#endif + yyParser *yypParser; /* The parser */ + + yypParser = (yyParser*)yyp; + assert( yypParser->yytos!=0 ); +#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY) + yyendofinput = (yymajor==0); +#endif + ParseARG_STORE; + +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sInput '%s'\n",yyTracePrompt,yyTokenName[yymajor]); + } +#endif + + do{ + yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); + if( yyact <= YY_MAX_SHIFTREDUCE ){ + yy_shift(yypParser,yyact,yymajor,yyminor); +#ifndef YYNOERRORRECOVERY + yypParser->yyerrcnt--; +#endif + yymajor = YYNOCODE; + }else if( yyact <= YY_MAX_REDUCE ){ + yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,yyminor); + }else{ + assert( yyact == YY_ERROR_ACTION ); + yyminorunion.yy0 = yyminor; +#ifdef YYERRORSYMBOL + int yymx; +#endif +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + } +#endif +#ifdef YYERRORSYMBOL + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if( yypParser->yyerrcnt<0 ){ + yy_syntax_error(yypParser,yymajor,yyminor); + } + yymx = yypParser->yytos->major; + if( yymx==YYERRORSYMBOL || yyerrorhit ){ +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sDiscard input token %s\n", + yyTracePrompt,yyTokenName[yymajor]); + } +#endif + yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion); + yymajor = YYNOCODE; + }else{ + while( yypParser->yytos >= yypParser->yystack + && yymx != YYERRORSYMBOL + && (yyact = yy_find_reduce_action( + yypParser->yytos->stateno, + YYERRORSYMBOL)) >= YY_MIN_REDUCE + ){ + yy_pop_parser_stack(yypParser); + } + if( yypParser->yytos < yypParser->yystack || yymajor==0 ){ + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); + yy_parse_failed(yypParser); +#ifndef YYNOERRORRECOVERY + yypParser->yyerrcnt = -1; +#endif + yymajor = YYNOCODE; + }else if( yymx!=YYERRORSYMBOL ){ + yy_shift(yypParser,yyact,YYERRORSYMBOL,yyminor); + } + } + yypParser->yyerrcnt = 3; + yyerrorhit = 1; +#elif defined(YYNOERRORRECOVERY) + /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + yy_syntax_error(yypParser,yymajor, yyminor); + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); + yymajor = YYNOCODE; + +#else /* YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if( yypParser->yyerrcnt<=0 ){ + yy_syntax_error(yypParser,yymajor, yyminor); + } + yypParser->yyerrcnt = 3; + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); + if( yyendofinput ){ + yy_parse_failed(yypParser); +#ifndef YYNOERRORRECOVERY + yypParser->yyerrcnt = -1; +#endif + } + yymajor = YYNOCODE; +#endif + } + }while( yymajor!=YYNOCODE && yypParser->yytos>yypParser->yystack ); +#ifndef NDEBUG + if( yyTraceFILE ){ + yyStackEntry *i; + char cDiv = '['; + fprintf(yyTraceFILE,"%sReturn. Stack=",yyTracePrompt); + for(i=&yypParser->yystack[1]; i<=yypParser->yytos; i++){ + fprintf(yyTraceFILE,"%c%s", cDiv, yyTokenName[i->major]); + cDiv = ' '; + } + fprintf(yyTraceFILE,"]\n"); + } +#endif + return; +} diff --git a/tools/lemon/lemon.c b/tools/lemon/lemon.c new file mode 100644 index 0000000..acc5450 --- /dev/null +++ b/tools/lemon/lemon.c @@ -0,0 +1,5466 @@ +/* +** This file contains all sources (including headers) to the LEMON +** LALR(1) parser generator. The sources have been combined into a +** single file to make it easy to include LEMON in the source tree +** and Makefile of another program. +** +** The author of this program disclaims copyright. +*/ +#include +#include +#include +#include +#include +#include + +#define ISSPACE(X) isspace((unsigned char)(X)) +#define ISDIGIT(X) isdigit((unsigned char)(X)) +#define ISALNUM(X) isalnum((unsigned char)(X)) +#define ISALPHA(X) isalpha((unsigned char)(X)) +#define ISUPPER(X) isupper((unsigned char)(X)) +#define ISLOWER(X) islower((unsigned char)(X)) + + +#ifndef __WIN32__ +# if defined(_WIN32) || defined(WIN32) +# define __WIN32__ +# endif +#endif + +#ifdef __WIN32__ +#ifdef __cplusplus +extern "C" { +#endif +extern int access(const char *path, int mode); +#ifdef __cplusplus +} +#endif +#else +#include +#endif + +/* #define PRIVATE static */ +#define PRIVATE + +#ifdef TEST +#define MAXRHS 5 /* Set low to exercise exception code */ +#else +#define MAXRHS 1000 +#endif + +static int showPrecedenceConflict = 0; +static char *msort(char*,char**,int(*)(const char*,const char*)); + +/* +** Compilers are getting increasingly pedantic about type conversions +** as C evolves ever closer to Ada.... To work around the latest problems +** we have to define the following variant of strlen(). +*/ +#define lemonStrlen(X) ((int)strlen(X)) + +/* +** Compilers are starting to complain about the use of sprintf() and strcpy(), +** saying they are unsafe. So we define our own versions of those routines too. +** +** There are three routines here: lemon_sprintf(), lemon_vsprintf(), and +** lemon_addtext(). The first two are replacements for sprintf() and vsprintf(). +** The third is a helper routine for vsnprintf() that adds texts to the end of a +** buffer, making sure the buffer is always zero-terminated. +** +** The string formatter is a minimal subset of stdlib sprintf() supporting only +** a few simply conversions: +** +** %d +** %s +** %.*s +** +*/ +static void lemon_addtext( + char *zBuf, /* The buffer to which text is added */ + int *pnUsed, /* Slots of the buffer used so far */ + const char *zIn, /* Text to add */ + int nIn, /* Bytes of text to add. -1 to use strlen() */ + int iWidth /* Field width. Negative to left justify */ +){ + if( nIn<0 ) for(nIn=0; zIn[nIn]; nIn++){} + while( iWidth>nIn ){ zBuf[(*pnUsed)++] = ' '; iWidth--; } + if( nIn==0 ) return; + memcpy(&zBuf[*pnUsed], zIn, nIn); + *pnUsed += nIn; + while( (-iWidth)>nIn ){ zBuf[(*pnUsed)++] = ' '; iWidth++; } + zBuf[*pnUsed] = 0; +} +static int lemon_vsprintf(char *str, const char *zFormat, va_list ap){ + int i, j, k, c; + int nUsed = 0; + const char *z; + char zTemp[50]; + str[0] = 0; + for(i=j=0; (c = zFormat[i])!=0; i++){ + if( c=='%' ){ + int iWidth = 0; + lemon_addtext(str, &nUsed, &zFormat[j], i-j, 0); + c = zFormat[++i]; + if( ISDIGIT(c) || (c=='-' && ISDIGIT(zFormat[i+1])) ){ + if( c=='-' ) i++; + while( ISDIGIT(zFormat[i]) ) iWidth = iWidth*10 + zFormat[i++] - '0'; + if( c=='-' ) iWidth = -iWidth; + c = zFormat[i]; + } + if( c=='d' ){ + int v = va_arg(ap, int); + if( v<0 ){ + lemon_addtext(str, &nUsed, "-", 1, iWidth); + v = -v; + }else if( v==0 ){ + lemon_addtext(str, &nUsed, "0", 1, iWidth); + } + k = 0; + while( v>0 ){ + k++; + zTemp[sizeof(zTemp)-k] = (v%10) + '0'; + v /= 10; + } + lemon_addtext(str, &nUsed, &zTemp[sizeof(zTemp)-k], k, iWidth); + }else if( c=='s' ){ + z = va_arg(ap, const char*); + lemon_addtext(str, &nUsed, z, -1, iWidth); + }else if( c=='.' && memcmp(&zFormat[i], ".*s", 3)==0 ){ + i += 2; + k = va_arg(ap, int); + z = va_arg(ap, const char*); + lemon_addtext(str, &nUsed, z, k, iWidth); + }else if( c=='%' ){ + lemon_addtext(str, &nUsed, "%", 1, 0); + }else{ + fprintf(stderr, "illegal format\n"); + exit(1); + } + j = i+1; + } + } + lemon_addtext(str, &nUsed, &zFormat[j], i-j, 0); + return nUsed; +} +static int lemon_sprintf(char *str, const char *format, ...){ + va_list ap; + int rc; + va_start(ap, format); + rc = lemon_vsprintf(str, format, ap); + va_end(ap); + return rc; +} +static void lemon_strcpy(char *dest, const char *src){ + while( (*(dest++) = *(src++))!=0 ){} +} +static void lemon_strcat(char *dest, const char *src){ + while( *dest ) dest++; + lemon_strcpy(dest, src); +} + + +/* a few forward declarations... */ +struct rule; +struct lemon; +struct action; + +static struct action *Action_new(void); +static struct action *Action_sort(struct action *); + +/********** From the file "build.h" ************************************/ +void FindRulePrecedences(struct lemon*); +void FindFirstSets(struct lemon*); +void FindStates(struct lemon*); +void FindLinks(struct lemon*); +void FindFollowSets(struct lemon*); +void FindActions(struct lemon*); + +/********* From the file "configlist.h" *********************************/ +void Configlist_init(void); +struct config *Configlist_add(struct rule *, int); +struct config *Configlist_addbasis(struct rule *, int); +void Configlist_closure(struct lemon *); +void Configlist_sort(void); +void Configlist_sortbasis(void); +struct config *Configlist_return(void); +struct config *Configlist_basis(void); +void Configlist_eat(struct config *); +void Configlist_reset(void); + +/********* From the file "error.h" ***************************************/ +void ErrorMsg(const char *, int,const char *, ...); + +/****** From the file "option.h" ******************************************/ +enum option_type { OPT_FLAG=1, OPT_INT, OPT_DBL, OPT_STR, + OPT_FFLAG, OPT_FINT, OPT_FDBL, OPT_FSTR}; +struct s_options { + enum option_type type; + const char *label; + char *arg; + const char *message; +}; +int OptInit(char**,struct s_options*,FILE*); +int OptNArgs(void); +char *OptArg(int); +void OptErr(int); +void OptPrint(void); + +/******** From the file "parse.h" *****************************************/ +void Parse(struct lemon *lemp); + +/********* From the file "plink.h" ***************************************/ +struct plink *Plink_new(void); +void Plink_add(struct plink **, struct config *); +void Plink_copy(struct plink **, struct plink *); +void Plink_delete(struct plink *); + +/********** From the file "report.h" *************************************/ +void Reprint(struct lemon *); +void ReportOutput(struct lemon *); +void ReportTable(struct lemon *, int); +void ReportHeader(struct lemon *); +void CompressTables(struct lemon *); +void ResortStates(struct lemon *); + +/********** From the file "set.h" ****************************************/ +void SetSize(int); /* All sets will be of size N */ +char *SetNew(void); /* A new set for element 0..N */ +void SetFree(char*); /* Deallocate a set */ +int SetAdd(char*,int); /* Add element to a set */ +int SetUnion(char *,char *); /* A <- A U B, thru element N */ +#define SetFind(X,Y) (X[Y]) /* True if Y is in set X */ + +/********** From the file "struct.h" *************************************/ +/* +** Principal data structures for the LEMON parser generator. +*/ + +typedef enum {LEMON_FALSE=0, LEMON_TRUE} Boolean; + +/* Symbols (terminals and nonterminals) of the grammar are stored +** in the following: */ +enum symbol_type { + TERMINAL, + NONTERMINAL, + MULTITERMINAL +}; +enum e_assoc { + LEFT, + RIGHT, + NONE, + UNK +}; +struct symbol { + const char *name; /* Name of the symbol */ + int index; /* Index number for this symbol */ + enum symbol_type type; /* Symbols are all either TERMINALS or NTs */ + struct rule *rule; /* Linked list of rules of this (if an NT) */ + struct symbol *fallback; /* fallback token in case this token doesn't parse */ + int prec; /* Precedence if defined (-1 otherwise) */ + enum e_assoc assoc; /* Associativity if precedence is defined */ + char *firstset; /* First-set for all rules of this symbol */ + Boolean lambda; /* True if NT and can generate an empty string */ + int useCnt; /* Number of times used */ + char *destructor; /* Code which executes whenever this symbol is + ** popped from the stack during error processing */ + int destLineno; /* Line number for start of destructor. Set to + ** -1 for duplicate destructors. */ + char *datatype; /* The data type of information held by this + ** object. Only used if type==NONTERMINAL */ + int dtnum; /* The data type number. In the parser, the value + ** stack is a union. The .yy%d element of this + ** union is the correct data type for this object */ + /* The following fields are used by MULTITERMINALs only */ + int nsubsym; /* Number of constituent symbols in the MULTI */ + struct symbol **subsym; /* Array of constituent symbols */ +}; + +/* Each production rule in the grammar is stored in the following +** structure. */ +struct rule { + struct symbol *lhs; /* Left-hand side of the rule */ + const char *lhsalias; /* Alias for the LHS (NULL if none) */ + int lhsStart; /* True if left-hand side is the start symbol */ + int ruleline; /* Line number for the rule */ + int nrhs; /* Number of RHS symbols */ + struct symbol **rhs; /* The RHS symbols */ + const char **rhsalias; /* An alias for each RHS symbol (NULL if none) */ + int line; /* Line number at which code begins */ + const char *code; /* The code executed when this rule is reduced */ + const char *codePrefix; /* Setup code before code[] above */ + const char *codeSuffix; /* Breakdown code after code[] above */ + int noCode; /* True if this rule has no associated C code */ + int codeEmitted; /* True if the code has been emitted already */ + struct symbol *precsym; /* Precedence symbol for this rule */ + int index; /* An index number for this rule */ + int iRule; /* Rule number as used in the generated tables */ + Boolean canReduce; /* True if this rule is ever reduced */ + Boolean doesReduce; /* Reduce actions occur after optimization */ + struct rule *nextlhs; /* Next rule with the same LHS */ + struct rule *next; /* Next rule in the global list */ +}; + +/* A configuration is a production rule of the grammar together with +** a mark (dot) showing how much of that rule has been processed so far. +** Configurations also contain a follow-set which is a list of terminal +** symbols which are allowed to immediately follow the end of the rule. +** Every configuration is recorded as an instance of the following: */ +enum cfgstatus { + COMPLETE, + INCOMPLETE +}; +struct config { + struct rule *rp; /* The rule upon which the configuration is based */ + int dot; /* The parse point */ + char *fws; /* Follow-set for this configuration only */ + struct plink *fplp; /* Follow-set forward propagation links */ + struct plink *bplp; /* Follow-set backwards propagation links */ + struct state *stp; /* Pointer to state which contains this */ + enum cfgstatus status; /* used during followset and shift computations */ + struct config *next; /* Next configuration in the state */ + struct config *bp; /* The next basis configuration */ +}; + +enum e_action { + SHIFT, + ACCEPT, + REDUCE, + ERROR, + SSCONFLICT, /* A shift/shift conflict */ + SRCONFLICT, /* Was a reduce, but part of a conflict */ + RRCONFLICT, /* Was a reduce, but part of a conflict */ + SH_RESOLVED, /* Was a shift. Precedence resolved conflict */ + RD_RESOLVED, /* Was reduce. Precedence resolved conflict */ + NOT_USED, /* Deleted by compression */ + SHIFTREDUCE /* Shift first, then reduce */ +}; + +/* Every shift or reduce operation is stored as one of the following */ +struct action { + struct symbol *sp; /* The look-ahead symbol */ + enum e_action type; + union { + struct state *stp; /* The new state, if a shift */ + struct rule *rp; /* The rule, if a reduce */ + } x; + struct symbol *spOpt; /* SHIFTREDUCE optimization to this symbol */ + struct action *next; /* Next action for this state */ + struct action *collide; /* Next action with the same hash */ +}; + +/* Each state of the generated parser's finite state machine +** is encoded as an instance of the following structure. */ +struct state { + struct config *bp; /* The basis configurations for this state */ + struct config *cfp; /* All configurations in this set */ + int statenum; /* Sequential number for this state */ + struct action *ap; /* List of actions for this state */ + int nTknAct, nNtAct; /* Number of actions on terminals and nonterminals */ + int iTknOfst, iNtOfst; /* yy_action[] offset for terminals and nonterms */ + int iDfltReduce; /* Default action is to REDUCE by this rule */ + struct rule *pDfltReduce;/* The default REDUCE rule. */ + int autoReduce; /* True if this is an auto-reduce state */ +}; +#define NO_OFFSET (-2147483647) + +/* A followset propagation link indicates that the contents of one +** configuration followset should be propagated to another whenever +** the first changes. */ +struct plink { + struct config *cfp; /* The configuration to which linked */ + struct plink *next; /* The next propagate link */ +}; + +/* The state vector for the entire parser generator is recorded as +** follows. (LEMON uses no global variables and makes little use of +** static variables. Fields in the following structure can be thought +** of as begin global variables in the program.) */ +struct lemon { + struct state **sorted; /* Table of states sorted by state number */ + struct rule *rule; /* List of all rules */ + struct rule *startRule; /* First rule */ + int nstate; /* Number of states */ + int nxstate; /* nstate with tail degenerate states removed */ + int nrule; /* Number of rules */ + int nsymbol; /* Number of terminal and nonterminal symbols */ + int nterminal; /* Number of terminal symbols */ + struct symbol **symbols; /* Sorted array of pointers to symbols */ + int errorcnt; /* Number of errors */ + struct symbol *errsym; /* The error symbol */ + struct symbol *wildcard; /* Token that matches anything */ + char *name; /* Name of the generated parser */ + char *arg; /* Declaration of the 3th argument to parser */ + char *tokentype; /* Type of terminal symbols in the parser stack */ + char *vartype; /* The default type of non-terminal symbols */ + char *start; /* Name of the start symbol for the grammar */ + char *stacksize; /* Size of the parser stack */ + char *include; /* Code to put at the start of the C file */ + char *error; /* Code to execute when an error is seen */ + char *overflow; /* Code to execute on a stack overflow */ + char *failure; /* Code to execute on parser failure */ + char *accept; /* Code to execute when the parser excepts */ + char *extracode; /* Code appended to the generated file */ + char *tokendest; /* Code to execute to destroy token data */ + char *vardest; /* Code for the default non-terminal destructor */ + char *filename; /* Name of the input file */ + char *outname; /* Name of the current output file */ + char *tokenprefix; /* A prefix added to token names in the .h file */ + int nconflict; /* Number of parsing conflicts */ + int nactiontab; /* Number of entries in the yy_action[] table */ + int tablesize; /* Total table size of all tables in bytes */ + int basisflag; /* Print only basis configurations */ + int has_fallback; /* True if any %fallback is seen in the grammar */ + int nolinenosflag; /* True if #line statements should not be printed */ + char *argv0; /* Name of the program */ +}; + +#define MemoryCheck(X) if((X)==0){ \ + extern void memory_error(); \ + memory_error(); \ +} + +/**************** From the file "table.h" *********************************/ +/* +** All code in this file has been automatically generated +** from a specification in the file +** "table.q" +** by the associative array code building program "aagen". +** Do not edit this file! Instead, edit the specification +** file, then rerun aagen. +*/ +/* +** Code for processing tables in the LEMON parser generator. +*/ +/* Routines for handling a strings */ + +const char *Strsafe(const char *); + +void Strsafe_init(void); +int Strsafe_insert(const char *); +const char *Strsafe_find(const char *); + +/* Routines for handling symbols of the grammar */ + +struct symbol *Symbol_new(const char *); +int Symbolcmpp(const void *, const void *); +void Symbol_init(void); +int Symbol_insert(struct symbol *, const char *); +struct symbol *Symbol_find(const char *); +struct symbol *Symbol_Nth(int); +int Symbol_count(void); +struct symbol **Symbol_arrayof(void); + +/* Routines to manage the state table */ + +int Configcmp(const char *, const char *); +struct state *State_new(void); +void State_init(void); +int State_insert(struct state *, struct config *); +struct state *State_find(struct config *); +struct state **State_arrayof(void); + +/* Routines used for efficiency in Configlist_add */ + +void Configtable_init(void); +int Configtable_insert(struct config *); +struct config *Configtable_find(struct config *); +void Configtable_clear(int(*)(struct config *)); + +/****************** From the file "action.c" *******************************/ +/* +** Routines processing parser actions in the LEMON parser generator. +*/ + +/* Allocate a new parser action */ +static struct action *Action_new(void){ + static struct action *freelist = 0; + struct action *newaction; + + if( freelist==0 ){ + int i; + int amt = 100; + freelist = (struct action *)calloc(amt, sizeof(struct action)); + if( freelist==0 ){ + fprintf(stderr,"Unable to allocate memory for a new parser action."); + exit(1); + } + for(i=0; inext; + return newaction; +} + +/* Compare two actions for sorting purposes. Return negative, zero, or +** positive if the first action is less than, equal to, or greater than +** the first +*/ +static int actioncmp( + struct action *ap1, + struct action *ap2 +){ + int rc; + rc = ap1->sp->index - ap2->sp->index; + if( rc==0 ){ + rc = (int)ap1->type - (int)ap2->type; + } + if( rc==0 && (ap1->type==REDUCE || ap1->type==SHIFTREDUCE) ){ + rc = ap1->x.rp->index - ap2->x.rp->index; + } + if( rc==0 ){ + rc = (int) (ap2 - ap1); + } + return rc; +} + +/* Sort parser actions */ +static struct action *Action_sort( + struct action *ap +){ + ap = (struct action *)msort((char *)ap,(char **)&ap->next, + (int(*)(const char*,const char*))actioncmp); + return ap; +} + +void Action_add( + struct action **app, + enum e_action type, + struct symbol *sp, + char *arg +){ + struct action *newaction; + newaction = Action_new(); + newaction->next = *app; + *app = newaction; + newaction->type = type; + newaction->sp = sp; + newaction->spOpt = 0; + if( type==SHIFT ){ + newaction->x.stp = (struct state *)arg; + }else{ + newaction->x.rp = (struct rule *)arg; + } +} +/********************** New code to implement the "acttab" module ***********/ +/* +** This module implements routines use to construct the yy_action[] table. +*/ + +/* +** The state of the yy_action table under construction is an instance of +** the following structure. +** +** The yy_action table maps the pair (state_number, lookahead) into an +** action_number. The table is an array of integers pairs. The state_number +** determines an initial offset into the yy_action array. The lookahead +** value is then added to this initial offset to get an index X into the +** yy_action array. If the aAction[X].lookahead equals the value of the +** of the lookahead input, then the value of the action_number output is +** aAction[X].action. If the lookaheads do not match then the +** default action for the state_number is returned. +** +** All actions associated with a single state_number are first entered +** into aLookahead[] using multiple calls to acttab_action(). Then the +** actions for that single state_number are placed into the aAction[] +** array with a single call to acttab_insert(). The acttab_insert() call +** also resets the aLookahead[] array in preparation for the next +** state number. +*/ +struct lookahead_action { + int lookahead; /* Value of the lookahead token */ + int action; /* Action to take on the given lookahead */ +}; +typedef struct acttab acttab; +struct acttab { + int nAction; /* Number of used slots in aAction[] */ + int nActionAlloc; /* Slots allocated for aAction[] */ + struct lookahead_action + *aAction, /* The yy_action[] table under construction */ + *aLookahead; /* A single new transaction set */ + int mnLookahead; /* Minimum aLookahead[].lookahead */ + int mnAction; /* Action associated with mnLookahead */ + int mxLookahead; /* Maximum aLookahead[].lookahead */ + int nLookahead; /* Used slots in aLookahead[] */ + int nLookaheadAlloc; /* Slots allocated in aLookahead[] */ +}; + +/* Return the number of entries in the yy_action table */ +#define acttab_size(X) ((X)->nAction) + +/* The value for the N-th entry in yy_action */ +#define acttab_yyaction(X,N) ((X)->aAction[N].action) + +/* The value for the N-th entry in yy_lookahead */ +#define acttab_yylookahead(X,N) ((X)->aAction[N].lookahead) + +/* Free all memory associated with the given acttab */ +void acttab_free(acttab *p){ + free( p->aAction ); + free( p->aLookahead ); + free( p ); +} + +/* Allocate a new acttab structure */ +acttab *acttab_alloc(void){ + acttab *p = (acttab *) calloc( 1, sizeof(*p) ); + if( p==0 ){ + fprintf(stderr,"Unable to allocate memory for a new acttab."); + exit(1); + } + memset(p, 0, sizeof(*p)); + return p; +} + +/* Add a new action to the current transaction set. +** +** This routine is called once for each lookahead for a particular +** state. +*/ +void acttab_action(acttab *p, int lookahead, int action){ + if( p->nLookahead>=p->nLookaheadAlloc ){ + p->nLookaheadAlloc += 25; + p->aLookahead = (struct lookahead_action *) realloc( p->aLookahead, + sizeof(p->aLookahead[0])*p->nLookaheadAlloc ); + if( p->aLookahead==0 ){ + fprintf(stderr,"malloc failed\n"); + exit(1); + } + } + if( p->nLookahead==0 ){ + p->mxLookahead = lookahead; + p->mnLookahead = lookahead; + p->mnAction = action; + }else{ + if( p->mxLookaheadmxLookahead = lookahead; + if( p->mnLookahead>lookahead ){ + p->mnLookahead = lookahead; + p->mnAction = action; + } + } + p->aLookahead[p->nLookahead].lookahead = lookahead; + p->aLookahead[p->nLookahead].action = action; + p->nLookahead++; +} + +/* +** Add the transaction set built up with prior calls to acttab_action() +** into the current action table. Then reset the transaction set back +** to an empty set in preparation for a new round of acttab_action() calls. +** +** Return the offset into the action table of the new transaction. +*/ +int acttab_insert(acttab *p){ + int i, j, k, n; + assert( p->nLookahead>0 ); + + /* Make sure we have enough space to hold the expanded action table + ** in the worst case. The worst case occurs if the transaction set + ** must be appended to the current action table + */ + n = p->mxLookahead + 1; + if( p->nAction + n >= p->nActionAlloc ){ + int oldAlloc = p->nActionAlloc; + p->nActionAlloc = p->nAction + n + p->nActionAlloc + 20; + p->aAction = (struct lookahead_action *) realloc( p->aAction, + sizeof(p->aAction[0])*p->nActionAlloc); + if( p->aAction==0 ){ + fprintf(stderr,"malloc failed\n"); + exit(1); + } + for(i=oldAlloc; inActionAlloc; i++){ + p->aAction[i].lookahead = -1; + p->aAction[i].action = -1; + } + } + + /* Scan the existing action table looking for an offset that is a + ** duplicate of the current transaction set. Fall out of the loop + ** if and when the duplicate is found. + ** + ** i is the index in p->aAction[] where p->mnLookahead is inserted. + */ + for(i=p->nAction-1; i>=0; i--){ + if( p->aAction[i].lookahead==p->mnLookahead ){ + /* All lookaheads and actions in the aLookahead[] transaction + ** must match against the candidate aAction[i] entry. */ + if( p->aAction[i].action!=p->mnAction ) continue; + for(j=0; jnLookahead; j++){ + k = p->aLookahead[j].lookahead - p->mnLookahead + i; + if( k<0 || k>=p->nAction ) break; + if( p->aLookahead[j].lookahead!=p->aAction[k].lookahead ) break; + if( p->aLookahead[j].action!=p->aAction[k].action ) break; + } + if( jnLookahead ) continue; + + /* No possible lookahead value that is not in the aLookahead[] + ** transaction is allowed to match aAction[i] */ + n = 0; + for(j=0; jnAction; j++){ + if( p->aAction[j].lookahead<0 ) continue; + if( p->aAction[j].lookahead==j+p->mnLookahead-i ) n++; + } + if( n==p->nLookahead ){ + break; /* An exact match is found at offset i */ + } + } + } + + /* If no existing offsets exactly match the current transaction, find an + ** an empty offset in the aAction[] table in which we can add the + ** aLookahead[] transaction. + */ + if( i<0 ){ + /* Look for holes in the aAction[] table that fit the current + ** aLookahead[] transaction. Leave i set to the offset of the hole. + ** If no holes are found, i is left at p->nAction, which means the + ** transaction will be appended. */ + for(i=0; inActionAlloc - p->mxLookahead; i++){ + if( p->aAction[i].lookahead<0 ){ + for(j=0; jnLookahead; j++){ + k = p->aLookahead[j].lookahead - p->mnLookahead + i; + if( k<0 ) break; + if( p->aAction[k].lookahead>=0 ) break; + } + if( jnLookahead ) continue; + for(j=0; jnAction; j++){ + if( p->aAction[j].lookahead==j+p->mnLookahead-i ) break; + } + if( j==p->nAction ){ + break; /* Fits in empty slots */ + } + } + } + } + /* Insert transaction set at index i. */ + for(j=0; jnLookahead; j++){ + k = p->aLookahead[j].lookahead - p->mnLookahead + i; + p->aAction[k] = p->aLookahead[j]; + if( k>=p->nAction ) p->nAction = k+1; + } + p->nLookahead = 0; + + /* Return the offset that is added to the lookahead in order to get the + ** index into yy_action of the action */ + return i - p->mnLookahead; +} + +/********************** From the file "build.c" *****************************/ +/* +** Routines to construction the finite state machine for the LEMON +** parser generator. +*/ + +/* Find a precedence symbol of every rule in the grammar. +** +** Those rules which have a precedence symbol coded in the input +** grammar using the "[symbol]" construct will already have the +** rp->precsym field filled. Other rules take as their precedence +** symbol the first RHS symbol with a defined precedence. If there +** are not RHS symbols with a defined precedence, the precedence +** symbol field is left blank. +*/ +void FindRulePrecedences(struct lemon *xp) +{ + struct rule *rp; + for(rp=xp->rule; rp; rp=rp->next){ + if( rp->precsym==0 ){ + int i, j; + for(i=0; inrhs && rp->precsym==0; i++){ + struct symbol *sp = rp->rhs[i]; + if( sp->type==MULTITERMINAL ){ + for(j=0; jnsubsym; j++){ + if( sp->subsym[j]->prec>=0 ){ + rp->precsym = sp->subsym[j]; + break; + } + } + }else if( sp->prec>=0 ){ + rp->precsym = rp->rhs[i]; + } + } + } + } + return; +} + +/* Find all nonterminals which will generate the empty string. +** Then go back and compute the first sets of every nonterminal. +** The first set is the set of all terminal symbols which can begin +** a string generated by that nonterminal. +*/ +void FindFirstSets(struct lemon *lemp) +{ + int i, j; + struct rule *rp; + int progress; + + for(i=0; insymbol; i++){ + lemp->symbols[i]->lambda = LEMON_FALSE; + } + for(i=lemp->nterminal; insymbol; i++){ + lemp->symbols[i]->firstset = SetNew(); + } + + /* First compute all lambdas */ + do{ + progress = 0; + for(rp=lemp->rule; rp; rp=rp->next){ + if( rp->lhs->lambda ) continue; + for(i=0; inrhs; i++){ + struct symbol *sp = rp->rhs[i]; + assert( sp->type==NONTERMINAL || sp->lambda==LEMON_FALSE ); + if( sp->lambda==LEMON_FALSE ) break; + } + if( i==rp->nrhs ){ + rp->lhs->lambda = LEMON_TRUE; + progress = 1; + } + } + }while( progress ); + + /* Now compute all first sets */ + do{ + struct symbol *s1, *s2; + progress = 0; + for(rp=lemp->rule; rp; rp=rp->next){ + s1 = rp->lhs; + for(i=0; inrhs; i++){ + s2 = rp->rhs[i]; + if( s2->type==TERMINAL ){ + progress += SetAdd(s1->firstset,s2->index); + break; + }else if( s2->type==MULTITERMINAL ){ + for(j=0; jnsubsym; j++){ + progress += SetAdd(s1->firstset,s2->subsym[j]->index); + } + break; + }else if( s1==s2 ){ + if( s1->lambda==LEMON_FALSE ) break; + }else{ + progress += SetUnion(s1->firstset,s2->firstset); + if( s2->lambda==LEMON_FALSE ) break; + } + } + } + }while( progress ); + return; +} + +/* Compute all LR(0) states for the grammar. Links +** are added to between some states so that the LR(1) follow sets +** can be computed later. +*/ +PRIVATE struct state *getstate(struct lemon *); /* forward reference */ +void FindStates(struct lemon *lemp) +{ + struct symbol *sp; + struct rule *rp; + + Configlist_init(); + + /* Find the start symbol */ + if( lemp->start ){ + sp = Symbol_find(lemp->start); + if( sp==0 ){ + ErrorMsg(lemp->filename,0, +"The specified start symbol \"%s\" is not \ +in a nonterminal of the grammar. \"%s\" will be used as the start \ +symbol instead.",lemp->start,lemp->startRule->lhs->name); + lemp->errorcnt++; + sp = lemp->startRule->lhs; + } + }else{ + sp = lemp->startRule->lhs; + } + + /* Make sure the start symbol doesn't occur on the right-hand side of + ** any rule. Report an error if it does. (YACC would generate a new + ** start symbol in this case.) */ + for(rp=lemp->rule; rp; rp=rp->next){ + int i; + for(i=0; inrhs; i++){ + if( rp->rhs[i]==sp ){ /* FIX ME: Deal with multiterminals */ + ErrorMsg(lemp->filename,0, +"The start symbol \"%s\" occurs on the \ +right-hand side of a rule. This will result in a parser which \ +does not work properly.",sp->name); + lemp->errorcnt++; + } + } + } + + /* The basis configuration set for the first state + ** is all rules which have the start symbol as their + ** left-hand side */ + for(rp=sp->rule; rp; rp=rp->nextlhs){ + struct config *newcfp; + rp->lhsStart = 1; + newcfp = Configlist_addbasis(rp,0); + SetAdd(newcfp->fws,0); + } + + /* Compute the first state. All other states will be + ** computed automatically during the computation of the first one. + ** The returned pointer to the first state is not used. */ + (void)getstate(lemp); + return; +} + +/* Return a pointer to a state which is described by the configuration +** list which has been built from calls to Configlist_add. +*/ +PRIVATE void buildshifts(struct lemon *, struct state *); /* Forwd ref */ +PRIVATE struct state *getstate(struct lemon *lemp) +{ + struct config *cfp, *bp; + struct state *stp; + + /* Extract the sorted basis of the new state. The basis was constructed + ** by prior calls to "Configlist_addbasis()". */ + Configlist_sortbasis(); + bp = Configlist_basis(); + + /* Get a state with the same basis */ + stp = State_find(bp); + if( stp ){ + /* A state with the same basis already exists! Copy all the follow-set + ** propagation links from the state under construction into the + ** preexisting state, then return a pointer to the preexisting state */ + struct config *x, *y; + for(x=bp, y=stp->bp; x && y; x=x->bp, y=y->bp){ + Plink_copy(&y->bplp,x->bplp); + Plink_delete(x->fplp); + x->fplp = x->bplp = 0; + } + cfp = Configlist_return(); + Configlist_eat(cfp); + }else{ + /* This really is a new state. Construct all the details */ + Configlist_closure(lemp); /* Compute the configuration closure */ + Configlist_sort(); /* Sort the configuration closure */ + cfp = Configlist_return(); /* Get a pointer to the config list */ + stp = State_new(); /* A new state structure */ + MemoryCheck(stp); + stp->bp = bp; /* Remember the configuration basis */ + stp->cfp = cfp; /* Remember the configuration closure */ + stp->statenum = lemp->nstate++; /* Every state gets a sequence number */ + stp->ap = 0; /* No actions, yet. */ + State_insert(stp,stp->bp); /* Add to the state table */ + buildshifts(lemp,stp); /* Recursively compute successor states */ + } + return stp; +} + +/* +** Return true if two symbols are the same. +*/ +int same_symbol(struct symbol *a, struct symbol *b) +{ + int i; + if( a==b ) return 1; + if( a->type!=MULTITERMINAL ) return 0; + if( b->type!=MULTITERMINAL ) return 0; + if( a->nsubsym!=b->nsubsym ) return 0; + for(i=0; insubsym; i++){ + if( a->subsym[i]!=b->subsym[i] ) return 0; + } + return 1; +} + +/* Construct all successor states to the given state. A "successor" +** state is any state which can be reached by a shift action. +*/ +PRIVATE void buildshifts(struct lemon *lemp, struct state *stp) +{ + struct config *cfp; /* For looping thru the config closure of "stp" */ + struct config *bcfp; /* For the inner loop on config closure of "stp" */ + struct config *newcfg; /* */ + struct symbol *sp; /* Symbol following the dot in configuration "cfp" */ + struct symbol *bsp; /* Symbol following the dot in configuration "bcfp" */ + struct state *newstp; /* A pointer to a successor state */ + + /* Each configuration becomes complete after it contibutes to a successor + ** state. Initially, all configurations are incomplete */ + for(cfp=stp->cfp; cfp; cfp=cfp->next) cfp->status = INCOMPLETE; + + /* Loop through all configurations of the state "stp" */ + for(cfp=stp->cfp; cfp; cfp=cfp->next){ + if( cfp->status==COMPLETE ) continue; /* Already used by inner loop */ + if( cfp->dot>=cfp->rp->nrhs ) continue; /* Can't shift this config */ + Configlist_reset(); /* Reset the new config set */ + sp = cfp->rp->rhs[cfp->dot]; /* Symbol after the dot */ + + /* For every configuration in the state "stp" which has the symbol "sp" + ** following its dot, add the same configuration to the basis set under + ** construction but with the dot shifted one symbol to the right. */ + for(bcfp=cfp; bcfp; bcfp=bcfp->next){ + if( bcfp->status==COMPLETE ) continue; /* Already used */ + if( bcfp->dot>=bcfp->rp->nrhs ) continue; /* Can't shift this one */ + bsp = bcfp->rp->rhs[bcfp->dot]; /* Get symbol after dot */ + if( !same_symbol(bsp,sp) ) continue; /* Must be same as for "cfp" */ + bcfp->status = COMPLETE; /* Mark this config as used */ + newcfg = Configlist_addbasis(bcfp->rp,bcfp->dot+1); + Plink_add(&newcfg->bplp,bcfp); + } + + /* Get a pointer to the state described by the basis configuration set + ** constructed in the preceding loop */ + newstp = getstate(lemp); + + /* The state "newstp" is reached from the state "stp" by a shift action + ** on the symbol "sp" */ + if( sp->type==MULTITERMINAL ){ + int i; + for(i=0; insubsym; i++){ + Action_add(&stp->ap,SHIFT,sp->subsym[i],(char*)newstp); + } + }else{ + Action_add(&stp->ap,SHIFT,sp,(char *)newstp); + } + } +} + +/* +** Construct the propagation links +*/ +void FindLinks(struct lemon *lemp) +{ + int i; + struct config *cfp, *other; + struct state *stp; + struct plink *plp; + + /* Housekeeping detail: + ** Add to every propagate link a pointer back to the state to + ** which the link is attached. */ + for(i=0; instate; i++){ + stp = lemp->sorted[i]; + for(cfp=stp->cfp; cfp; cfp=cfp->next){ + cfp->stp = stp; + } + } + + /* Convert all backlinks into forward links. Only the forward + ** links are used in the follow-set computation. */ + for(i=0; instate; i++){ + stp = lemp->sorted[i]; + for(cfp=stp->cfp; cfp; cfp=cfp->next){ + for(plp=cfp->bplp; plp; plp=plp->next){ + other = plp->cfp; + Plink_add(&other->fplp,cfp); + } + } + } +} + +/* Compute all followsets. +** +** A followset is the set of all symbols which can come immediately +** after a configuration. +*/ +void FindFollowSets(struct lemon *lemp) +{ + int i; + struct config *cfp; + struct plink *plp; + int progress; + int change; + + for(i=0; instate; i++){ + for(cfp=lemp->sorted[i]->cfp; cfp; cfp=cfp->next){ + cfp->status = INCOMPLETE; + } + } + + do{ + progress = 0; + for(i=0; instate; i++){ + for(cfp=lemp->sorted[i]->cfp; cfp; cfp=cfp->next){ + if( cfp->status==COMPLETE ) continue; + for(plp=cfp->fplp; plp; plp=plp->next){ + change = SetUnion(plp->cfp->fws,cfp->fws); + if( change ){ + plp->cfp->status = INCOMPLETE; + progress = 1; + } + } + cfp->status = COMPLETE; + } + } + }while( progress ); +} + +static int resolve_conflict(struct action *,struct action *); + +/* Compute the reduce actions, and resolve conflicts. +*/ +void FindActions(struct lemon *lemp) +{ + int i,j; + struct config *cfp; + struct state *stp; + struct symbol *sp; + struct rule *rp; + + /* Add all of the reduce actions + ** A reduce action is added for each element of the followset of + ** a configuration which has its dot at the extreme right. + */ + for(i=0; instate; i++){ /* Loop over all states */ + stp = lemp->sorted[i]; + for(cfp=stp->cfp; cfp; cfp=cfp->next){ /* Loop over all configurations */ + if( cfp->rp->nrhs==cfp->dot ){ /* Is dot at extreme right? */ + for(j=0; jnterminal; j++){ + if( SetFind(cfp->fws,j) ){ + /* Add a reduce action to the state "stp" which will reduce by the + ** rule "cfp->rp" if the lookahead symbol is "lemp->symbols[j]" */ + Action_add(&stp->ap,REDUCE,lemp->symbols[j],(char *)cfp->rp); + } + } + } + } + } + + /* Add the accepting token */ + if( lemp->start ){ + sp = Symbol_find(lemp->start); + if( sp==0 ) sp = lemp->startRule->lhs; + }else{ + sp = lemp->startRule->lhs; + } + /* Add to the first state (which is always the starting state of the + ** finite state machine) an action to ACCEPT if the lookahead is the + ** start nonterminal. */ + Action_add(&lemp->sorted[0]->ap,ACCEPT,sp,0); + + /* Resolve conflicts */ + for(i=0; instate; i++){ + struct action *ap, *nap; + stp = lemp->sorted[i]; + /* assert( stp->ap ); */ + stp->ap = Action_sort(stp->ap); + for(ap=stp->ap; ap && ap->next; ap=ap->next){ + for(nap=ap->next; nap && nap->sp==ap->sp; nap=nap->next){ + /* The two actions "ap" and "nap" have the same lookahead. + ** Figure out which one should be used */ + lemp->nconflict += resolve_conflict(ap,nap); + } + } + } + + /* Report an error for each rule that can never be reduced. */ + for(rp=lemp->rule; rp; rp=rp->next) rp->canReduce = LEMON_FALSE; + for(i=0; instate; i++){ + struct action *ap; + for(ap=lemp->sorted[i]->ap; ap; ap=ap->next){ + if( ap->type==REDUCE ) ap->x.rp->canReduce = LEMON_TRUE; + } + } + for(rp=lemp->rule; rp; rp=rp->next){ + if( rp->canReduce ) continue; + ErrorMsg(lemp->filename,rp->ruleline,"This rule can not be reduced.\n"); + lemp->errorcnt++; + } +} + +/* Resolve a conflict between the two given actions. If the +** conflict can't be resolved, return non-zero. +** +** NO LONGER TRUE: +** To resolve a conflict, first look to see if either action +** is on an error rule. In that case, take the action which +** is not associated with the error rule. If neither or both +** actions are associated with an error rule, then try to +** use precedence to resolve the conflict. +** +** If either action is a SHIFT, then it must be apx. This +** function won't work if apx->type==REDUCE and apy->type==SHIFT. +*/ +static int resolve_conflict( + struct action *apx, + struct action *apy +){ + struct symbol *spx, *spy; + int errcnt = 0; + assert( apx->sp==apy->sp ); /* Otherwise there would be no conflict */ + if( apx->type==SHIFT && apy->type==SHIFT ){ + apy->type = SSCONFLICT; + errcnt++; + } + if( apx->type==SHIFT && apy->type==REDUCE ){ + spx = apx->sp; + spy = apy->x.rp->precsym; + if( spy==0 || spx->prec<0 || spy->prec<0 ){ + /* Not enough precedence information. */ + apy->type = SRCONFLICT; + errcnt++; + }else if( spx->prec>spy->prec ){ /* higher precedence wins */ + apy->type = RD_RESOLVED; + }else if( spx->precprec ){ + apx->type = SH_RESOLVED; + }else if( spx->prec==spy->prec && spx->assoc==RIGHT ){ /* Use operator */ + apy->type = RD_RESOLVED; /* associativity */ + }else if( spx->prec==spy->prec && spx->assoc==LEFT ){ /* to break tie */ + apx->type = SH_RESOLVED; + }else{ + assert( spx->prec==spy->prec && spx->assoc==NONE ); + apx->type = ERROR; + } + }else if( apx->type==REDUCE && apy->type==REDUCE ){ + spx = apx->x.rp->precsym; + spy = apy->x.rp->precsym; + if( spx==0 || spy==0 || spx->prec<0 || + spy->prec<0 || spx->prec==spy->prec ){ + apy->type = RRCONFLICT; + errcnt++; + }else if( spx->prec>spy->prec ){ + apy->type = RD_RESOLVED; + }else if( spx->precprec ){ + apx->type = RD_RESOLVED; + } + }else{ + assert( + apx->type==SH_RESOLVED || + apx->type==RD_RESOLVED || + apx->type==SSCONFLICT || + apx->type==SRCONFLICT || + apx->type==RRCONFLICT || + apy->type==SH_RESOLVED || + apy->type==RD_RESOLVED || + apy->type==SSCONFLICT || + apy->type==SRCONFLICT || + apy->type==RRCONFLICT + ); + /* The REDUCE/SHIFT case cannot happen because SHIFTs come before + ** REDUCEs on the list. If we reach this point it must be because + ** the parser conflict had already been resolved. */ + } + return errcnt; +} +/********************* From the file "configlist.c" *************************/ +/* +** Routines to processing a configuration list and building a state +** in the LEMON parser generator. +*/ + +static struct config *freelist = 0; /* List of free configurations */ +static struct config *current = 0; /* Top of list of configurations */ +static struct config **currentend = 0; /* Last on list of configs */ +static struct config *basis = 0; /* Top of list of basis configs */ +static struct config **basisend = 0; /* End of list of basis configs */ + +/* Return a pointer to a new configuration */ +PRIVATE struct config *newconfig(void){ + struct config *newcfg; + if( freelist==0 ){ + int i; + int amt = 3; + freelist = (struct config *)calloc( amt, sizeof(struct config) ); + if( freelist==0 ){ + fprintf(stderr,"Unable to allocate memory for a new configuration."); + exit(1); + } + for(i=0; inext; + return newcfg; +} + +/* The configuration "old" is no longer used */ +PRIVATE void deleteconfig(struct config *old) +{ + old->next = freelist; + freelist = old; +} + +/* Initialized the configuration list builder */ +void Configlist_init(void){ + current = 0; + currentend = ¤t; + basis = 0; + basisend = &basis; + Configtable_init(); + return; +} + +/* Initialized the configuration list builder */ +void Configlist_reset(void){ + current = 0; + currentend = ¤t; + basis = 0; + basisend = &basis; + Configtable_clear(0); + return; +} + +/* Add another configuration to the configuration list */ +struct config *Configlist_add( + struct rule *rp, /* The rule */ + int dot /* Index into the RHS of the rule where the dot goes */ +){ + struct config *cfp, model; + + assert( currentend!=0 ); + model.rp = rp; + model.dot = dot; + cfp = Configtable_find(&model); + if( cfp==0 ){ + cfp = newconfig(); + cfp->rp = rp; + cfp->dot = dot; + cfp->fws = SetNew(); + cfp->stp = 0; + cfp->fplp = cfp->bplp = 0; + cfp->next = 0; + cfp->bp = 0; + *currentend = cfp; + currentend = &cfp->next; + Configtable_insert(cfp); + } + return cfp; +} + +/* Add a basis configuration to the configuration list */ +struct config *Configlist_addbasis(struct rule *rp, int dot) +{ + struct config *cfp, model; + + assert( basisend!=0 ); + assert( currentend!=0 ); + model.rp = rp; + model.dot = dot; + cfp = Configtable_find(&model); + if( cfp==0 ){ + cfp = newconfig(); + cfp->rp = rp; + cfp->dot = dot; + cfp->fws = SetNew(); + cfp->stp = 0; + cfp->fplp = cfp->bplp = 0; + cfp->next = 0; + cfp->bp = 0; + *currentend = cfp; + currentend = &cfp->next; + *basisend = cfp; + basisend = &cfp->bp; + Configtable_insert(cfp); + } + return cfp; +} + +/* Compute the closure of the configuration list */ +void Configlist_closure(struct lemon *lemp) +{ + struct config *cfp, *newcfp; + struct rule *rp, *newrp; + struct symbol *sp, *xsp; + int i, dot; + + assert( currentend!=0 ); + for(cfp=current; cfp; cfp=cfp->next){ + rp = cfp->rp; + dot = cfp->dot; + if( dot>=rp->nrhs ) continue; + sp = rp->rhs[dot]; + if( sp->type==NONTERMINAL ){ + if( sp->rule==0 && sp!=lemp->errsym ){ + ErrorMsg(lemp->filename,rp->line,"Nonterminal \"%s\" has no rules.", + sp->name); + lemp->errorcnt++; + } + for(newrp=sp->rule; newrp; newrp=newrp->nextlhs){ + newcfp = Configlist_add(newrp,0); + for(i=dot+1; inrhs; i++){ + xsp = rp->rhs[i]; + if( xsp->type==TERMINAL ){ + SetAdd(newcfp->fws,xsp->index); + break; + }else if( xsp->type==MULTITERMINAL ){ + int k; + for(k=0; knsubsym; k++){ + SetAdd(newcfp->fws, xsp->subsym[k]->index); + } + break; + }else{ + SetUnion(newcfp->fws,xsp->firstset); + if( xsp->lambda==LEMON_FALSE ) break; + } + } + if( i==rp->nrhs ) Plink_add(&cfp->fplp,newcfp); + } + } + } + return; +} + +/* Sort the configuration list */ +void Configlist_sort(void){ + current = (struct config*)msort((char*)current,(char**)&(current->next), + Configcmp); + currentend = 0; + return; +} + +/* Sort the basis configuration list */ +void Configlist_sortbasis(void){ + basis = (struct config*)msort((char*)current,(char**)&(current->bp), + Configcmp); + basisend = 0; + return; +} + +/* Return a pointer to the head of the configuration list and +** reset the list */ +struct config *Configlist_return(void){ + struct config *old; + old = current; + current = 0; + currentend = 0; + return old; +} + +/* Return a pointer to the head of the configuration list and +** reset the list */ +struct config *Configlist_basis(void){ + struct config *old; + old = basis; + basis = 0; + basisend = 0; + return old; +} + +/* Free all elements of the given configuration list */ +void Configlist_eat(struct config *cfp) +{ + struct config *nextcfp; + for(; cfp; cfp=nextcfp){ + nextcfp = cfp->next; + assert( cfp->fplp==0 ); + assert( cfp->bplp==0 ); + if( cfp->fws ) SetFree(cfp->fws); + deleteconfig(cfp); + } + return; +} +/***************** From the file "error.c" *********************************/ +/* +** Code for printing error message. +*/ + +void ErrorMsg(const char *filename, int lineno, const char *format, ...){ + va_list ap; + fprintf(stderr, "%s:%d: ", filename, lineno); + va_start(ap, format); + vfprintf(stderr,format,ap); + va_end(ap); + fprintf(stderr, "\n"); +} +/**************** From the file "main.c" ************************************/ +/* +** Main program file for the LEMON parser generator. +*/ + +/* Report an out-of-memory condition and abort. This function +** is used mostly by the "MemoryCheck" macro in struct.h +*/ +void memory_error(void){ + fprintf(stderr,"Out of memory. Aborting...\n"); + exit(1); +} + +static int nDefine = 0; /* Number of -D options on the command line */ +static char **azDefine = 0; /* Name of the -D macros */ + +/* This routine is called with the argument to each -D command-line option. +** Add the macro defined to the azDefine array. +*/ +static void handle_D_option(char *z){ + char **paz; + nDefine++; + azDefine = (char **) realloc(azDefine, sizeof(azDefine[0])*nDefine); + if( azDefine==0 ){ + fprintf(stderr,"out of memory\n"); + exit(1); + } + paz = &azDefine[nDefine-1]; + *paz = (char *) malloc( lemonStrlen(z)+1 ); + if( *paz==0 ){ + fprintf(stderr,"out of memory\n"); + exit(1); + } + lemon_strcpy(*paz, z); + for(z=*paz; *z && *z!='='; z++){} + *z = 0; +} + +static char *user_templatename = NULL; +static void handle_T_option(char *z){ + user_templatename = (char *) malloc( lemonStrlen(z)+1 ); + if( user_templatename==0 ){ + memory_error(); + } + lemon_strcpy(user_templatename, z); +} + +/* Merge together to lists of rules ordered by rule.iRule */ +static struct rule *Rule_merge(struct rule *pA, struct rule *pB){ + struct rule *pFirst = 0; + struct rule **ppPrev = &pFirst; + while( pA && pB ){ + if( pA->iRuleiRule ){ + *ppPrev = pA; + ppPrev = &pA->next; + pA = pA->next; + }else{ + *ppPrev = pB; + ppPrev = &pB->next; + pB = pB->next; + } + } + if( pA ){ + *ppPrev = pA; + }else{ + *ppPrev = pB; + } + return pFirst; +} + +/* +** Sort a list of rules in order of increasing iRule value +*/ +static struct rule *Rule_sort(struct rule *rp){ + int i; + struct rule *pNext; + struct rule *x[32]; + memset(x, 0, sizeof(x)); + while( rp ){ + pNext = rp->next; + rp->next = 0; + for(i=0; iuseCnt = 0; + + /* Parse the input file */ + Parse(&lem); + if( lem.errorcnt ) exit(lem.errorcnt); + if( lem.nrule==0 ){ + fprintf(stderr,"Empty grammar.\n"); + exit(1); + } + + /* Count and index the symbols of the grammar */ + Symbol_new("{default}"); + lem.nsymbol = Symbol_count(); + lem.symbols = Symbol_arrayof(); + for(i=0; iindex = i; + qsort(lem.symbols,lem.nsymbol,sizeof(struct symbol*), Symbolcmpp); + for(i=0; iindex = i; + while( lem.symbols[i-1]->type==MULTITERMINAL ){ i--; } + assert( strcmp(lem.symbols[i-1]->name,"{default}")==0 ); + lem.nsymbol = i - 1; + for(i=1; ISUPPER(lem.symbols[i]->name[0]); i++); + lem.nterminal = i; + + /* Assign sequential rule numbers. Start with 0. Put rules that have no + ** reduce action C-code associated with them last, so that the switch() + ** statement that selects reduction actions will have a smaller jump table. + */ + for(i=0, rp=lem.rule; rp; rp=rp->next){ + rp->iRule = rp->code ? i++ : -1; + } + for(rp=lem.rule; rp; rp=rp->next){ + if( rp->iRule<0 ) rp->iRule = i++; + } + lem.startRule = lem.rule; + lem.rule = Rule_sort(lem.rule); + + /* Generate a reprint of the grammar, if requested on the command line */ + if( rpflag ){ + Reprint(&lem); + }else{ + /* Initialize the size for all follow and first sets */ + SetSize(lem.nterminal+1); + + /* Find the precedence for every production rule (that has one) */ + FindRulePrecedences(&lem); + + /* Compute the lambda-nonterminals and the first-sets for every + ** nonterminal */ + FindFirstSets(&lem); + + /* Compute all LR(0) states. Also record follow-set propagation + ** links so that the follow-set can be computed later */ + lem.nstate = 0; + FindStates(&lem); + lem.sorted = State_arrayof(); + + /* Tie up loose ends on the propagation links */ + FindLinks(&lem); + + /* Compute the follow set of every reducible configuration */ + FindFollowSets(&lem); + + /* Compute the action tables */ + FindActions(&lem); + + /* Compress the action tables */ + if( compress==0 ) CompressTables(&lem); + + /* Reorder and renumber the states so that states with fewer choices + ** occur at the end. This is an optimization that helps make the + ** generated parser tables smaller. */ + if( noResort==0 ) ResortStates(&lem); + + /* Generate a report of the parser generated. (the "y.output" file) */ + if( !quiet ) ReportOutput(&lem); + + /* Generate the source code for the parser */ + ReportTable(&lem, mhflag); + + /* Produce a header file for use by the scanner. (This step is + ** omitted if the "-m" option is used because makeheaders will + ** generate the file for us.) */ + if( !mhflag ) ReportHeader(&lem); + } + if( statistics ){ + printf("Parser statistics:\n"); + stats_line("terminal symbols", lem.nterminal); + stats_line("non-terminal symbols", lem.nsymbol - lem.nterminal); + stats_line("total symbols", lem.nsymbol); + stats_line("rules", lem.nrule); + stats_line("states", lem.nxstate); + stats_line("conflicts", lem.nconflict); + stats_line("action table entries", lem.nactiontab); + stats_line("total table size (bytes)", lem.tablesize); + } + if( lem.nconflict > 0 ){ + fprintf(stderr,"%d parsing conflicts.\n",lem.nconflict); + } + + /* return 0 on success, 1 on failure. */ + exitcode = ((lem.errorcnt > 0) || (lem.nconflict > 0)) ? 1 : 0; + exit(exitcode); + return (exitcode); +} +/******************** From the file "msort.c" *******************************/ +/* +** A generic merge-sort program. +** +** USAGE: +** Let "ptr" be a pointer to some structure which is at the head of +** a null-terminated list. Then to sort the list call: +** +** ptr = msort(ptr,&(ptr->next),cmpfnc); +** +** In the above, "cmpfnc" is a pointer to a function which compares +** two instances of the structure and returns an integer, as in +** strcmp. The second argument is a pointer to the pointer to the +** second element of the linked list. This address is used to compute +** the offset to the "next" field within the structure. The offset to +** the "next" field must be constant for all structures in the list. +** +** The function returns a new pointer which is the head of the list +** after sorting. +** +** ALGORITHM: +** Merge-sort. +*/ + +/* +** Return a pointer to the next structure in the linked list. +*/ +#define NEXT(A) (*(char**)(((char*)A)+offset)) + +/* +** Inputs: +** a: A sorted, null-terminated linked list. (May be null). +** b: A sorted, null-terminated linked list. (May be null). +** cmp: A pointer to the comparison function. +** offset: Offset in the structure to the "next" field. +** +** Return Value: +** A pointer to the head of a sorted list containing the elements +** of both a and b. +** +** Side effects: +** The "next" pointers for elements in the lists a and b are +** changed. +*/ +static char *merge( + char *a, + char *b, + int (*cmp)(const char*,const char*), + int offset +){ + char *ptr, *head; + + if( a==0 ){ + head = b; + }else if( b==0 ){ + head = a; + }else{ + if( (*cmp)(a,b)<=0 ){ + ptr = a; + a = NEXT(a); + }else{ + ptr = b; + b = NEXT(b); + } + head = ptr; + while( a && b ){ + if( (*cmp)(a,b)<=0 ){ + NEXT(ptr) = a; + ptr = a; + a = NEXT(a); + }else{ + NEXT(ptr) = b; + ptr = b; + b = NEXT(b); + } + } + if( a ) NEXT(ptr) = a; + else NEXT(ptr) = b; + } + return head; +} + +/* +** Inputs: +** list: Pointer to a singly-linked list of structures. +** next: Pointer to pointer to the second element of the list. +** cmp: A comparison function. +** +** Return Value: +** A pointer to the head of a sorted list containing the elements +** orginally in list. +** +** Side effects: +** The "next" pointers for elements in list are changed. +*/ +#define LISTSIZE 30 +static char *msort( + char *list, + char **next, + int (*cmp)(const char*,const char*) +){ + unsigned long offset; + char *ep; + char *set[LISTSIZE]; + int i; + offset = (unsigned long)((char*)next - (char*)list); + for(i=0; istate = WAITING_FOR_DECL_KEYWORD; + }else if( ISLOWER(x[0]) ){ + psp->lhs = Symbol_new(x); + psp->nrhs = 0; + psp->lhsalias = 0; + psp->state = WAITING_FOR_ARROW; + }else if( x[0]=='{' ){ + if( psp->prevrule==0 ){ + ErrorMsg(psp->filename,psp->tokenlineno, +"There is no prior rule upon which to attach the code \ +fragment which begins on this line."); + psp->errorcnt++; + }else if( psp->prevrule->code!=0 ){ + ErrorMsg(psp->filename,psp->tokenlineno, +"Code fragment beginning on this line is not the first \ +to follow the previous rule."); + psp->errorcnt++; + }else{ + psp->prevrule->line = psp->tokenlineno; + psp->prevrule->code = &x[1]; + psp->prevrule->noCode = 0; + } + }else if( x[0]=='[' ){ + psp->state = PRECEDENCE_MARK_1; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Token \"%s\" should be either \"%%\" or a nonterminal name.", + x); + psp->errorcnt++; + } + break; + case PRECEDENCE_MARK_1: + if( !ISUPPER(x[0]) ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "The precedence symbol must be a terminal."); + psp->errorcnt++; + }else if( psp->prevrule==0 ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "There is no prior rule to assign precedence \"[%s]\".",x); + psp->errorcnt++; + }else if( psp->prevrule->precsym!=0 ){ + ErrorMsg(psp->filename,psp->tokenlineno, +"Precedence mark on this line is not the first \ +to follow the previous rule."); + psp->errorcnt++; + }else{ + psp->prevrule->precsym = Symbol_new(x); + } + psp->state = PRECEDENCE_MARK_2; + break; + case PRECEDENCE_MARK_2: + if( x[0]!=']' ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "Missing \"]\" on precedence mark."); + psp->errorcnt++; + } + psp->state = WAITING_FOR_DECL_OR_RULE; + break; + case WAITING_FOR_ARROW: + if( x[0]==':' && x[1]==':' && x[2]=='=' ){ + psp->state = IN_RHS; + }else if( x[0]=='(' ){ + psp->state = LHS_ALIAS_1; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Expected to see a \":\" following the LHS symbol \"%s\".", + psp->lhs->name); + psp->errorcnt++; + psp->state = RESYNC_AFTER_RULE_ERROR; + } + break; + case LHS_ALIAS_1: + if( ISALPHA(x[0]) ){ + psp->lhsalias = x; + psp->state = LHS_ALIAS_2; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "\"%s\" is not a valid alias for the LHS \"%s\"\n", + x,psp->lhs->name); + psp->errorcnt++; + psp->state = RESYNC_AFTER_RULE_ERROR; + } + break; + case LHS_ALIAS_2: + if( x[0]==')' ){ + psp->state = LHS_ALIAS_3; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Missing \")\" following LHS alias name \"%s\".",psp->lhsalias); + psp->errorcnt++; + psp->state = RESYNC_AFTER_RULE_ERROR; + } + break; + case LHS_ALIAS_3: + if( x[0]==':' && x[1]==':' && x[2]=='=' ){ + psp->state = IN_RHS; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Missing \"->\" following: \"%s(%s)\".", + psp->lhs->name,psp->lhsalias); + psp->errorcnt++; + psp->state = RESYNC_AFTER_RULE_ERROR; + } + break; + case IN_RHS: + if( x[0]=='.' ){ + struct rule *rp; + rp = (struct rule *)calloc( sizeof(struct rule) + + sizeof(struct symbol*)*psp->nrhs + sizeof(char*)*psp->nrhs, 1); + if( rp==0 ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "Can't allocate enough memory for this rule."); + psp->errorcnt++; + psp->prevrule = 0; + }else{ + int i; + rp->ruleline = psp->tokenlineno; + rp->rhs = (struct symbol**)&rp[1]; + rp->rhsalias = (const char**)&(rp->rhs[psp->nrhs]); + for(i=0; inrhs; i++){ + rp->rhs[i] = psp->rhs[i]; + rp->rhsalias[i] = psp->alias[i]; + } + rp->lhs = psp->lhs; + rp->lhsalias = psp->lhsalias; + rp->nrhs = psp->nrhs; + rp->code = 0; + rp->noCode = 1; + rp->precsym = 0; + rp->index = psp->gp->nrule++; + rp->nextlhs = rp->lhs->rule; + rp->lhs->rule = rp; + rp->next = 0; + if( psp->firstrule==0 ){ + psp->firstrule = psp->lastrule = rp; + }else{ + psp->lastrule->next = rp; + psp->lastrule = rp; + } + psp->prevrule = rp; + } + psp->state = WAITING_FOR_DECL_OR_RULE; + }else if( ISALPHA(x[0]) ){ + if( psp->nrhs>=MAXRHS ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "Too many symbols on RHS of rule beginning at \"%s\".", + x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_RULE_ERROR; + }else{ + psp->rhs[psp->nrhs] = Symbol_new(x); + psp->alias[psp->nrhs] = 0; + psp->nrhs++; + } + }else if( (x[0]=='|' || x[0]=='/') && psp->nrhs>0 ){ + struct symbol *msp = psp->rhs[psp->nrhs-1]; + if( msp->type!=MULTITERMINAL ){ + struct symbol *origsp = msp; + msp = (struct symbol *) calloc(1,sizeof(*msp)); + memset(msp, 0, sizeof(*msp)); + msp->type = MULTITERMINAL; + msp->nsubsym = 1; + msp->subsym = (struct symbol **) calloc(1,sizeof(struct symbol*)); + msp->subsym[0] = origsp; + msp->name = origsp->name; + psp->rhs[psp->nrhs-1] = msp; + } + msp->nsubsym++; + msp->subsym = (struct symbol **) realloc(msp->subsym, + sizeof(struct symbol*)*msp->nsubsym); + msp->subsym[msp->nsubsym-1] = Symbol_new(&x[1]); + if( ISLOWER(x[1]) || ISLOWER(msp->subsym[0]->name[0]) ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "Cannot form a compound containing a non-terminal"); + psp->errorcnt++; + } + }else if( x[0]=='(' && psp->nrhs>0 ){ + psp->state = RHS_ALIAS_1; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Illegal character on RHS of rule: \"%s\".",x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_RULE_ERROR; + } + break; + case RHS_ALIAS_1: + if( ISALPHA(x[0]) ){ + psp->alias[psp->nrhs-1] = x; + psp->state = RHS_ALIAS_2; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "\"%s\" is not a valid alias for the RHS symbol \"%s\"\n", + x,psp->rhs[psp->nrhs-1]->name); + psp->errorcnt++; + psp->state = RESYNC_AFTER_RULE_ERROR; + } + break; + case RHS_ALIAS_2: + if( x[0]==')' ){ + psp->state = IN_RHS; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Missing \")\" following LHS alias name \"%s\".",psp->lhsalias); + psp->errorcnt++; + psp->state = RESYNC_AFTER_RULE_ERROR; + } + break; + case WAITING_FOR_DECL_KEYWORD: + if( ISALPHA(x[0]) ){ + psp->declkeyword = x; + psp->declargslot = 0; + psp->decllinenoslot = 0; + psp->insertLineMacro = 1; + psp->state = WAITING_FOR_DECL_ARG; + if( strcmp(x,"name")==0 ){ + psp->declargslot = &(psp->gp->name); + psp->insertLineMacro = 0; + }else if( strcmp(x,"include")==0 ){ + psp->declargslot = &(psp->gp->include); + }else if( strcmp(x,"code")==0 ){ + psp->declargslot = &(psp->gp->extracode); + }else if( strcmp(x,"token_destructor")==0 ){ + psp->declargslot = &psp->gp->tokendest; + }else if( strcmp(x,"default_destructor")==0 ){ + psp->declargslot = &psp->gp->vardest; + }else if( strcmp(x,"token_prefix")==0 ){ + psp->declargslot = &psp->gp->tokenprefix; + psp->insertLineMacro = 0; + }else if( strcmp(x,"syntax_error")==0 ){ + psp->declargslot = &(psp->gp->error); + }else if( strcmp(x,"parse_accept")==0 ){ + psp->declargslot = &(psp->gp->accept); + }else if( strcmp(x,"parse_failure")==0 ){ + psp->declargslot = &(psp->gp->failure); + }else if( strcmp(x,"stack_overflow")==0 ){ + psp->declargslot = &(psp->gp->overflow); + }else if( strcmp(x,"extra_argument")==0 ){ + psp->declargslot = &(psp->gp->arg); + psp->insertLineMacro = 0; + }else if( strcmp(x,"token_type")==0 ){ + psp->declargslot = &(psp->gp->tokentype); + psp->insertLineMacro = 0; + }else if( strcmp(x,"default_type")==0 ){ + psp->declargslot = &(psp->gp->vartype); + psp->insertLineMacro = 0; + }else if( strcmp(x,"stack_size")==0 ){ + psp->declargslot = &(psp->gp->stacksize); + psp->insertLineMacro = 0; + }else if( strcmp(x,"start_symbol")==0 ){ + psp->declargslot = &(psp->gp->start); + psp->insertLineMacro = 0; + }else if( strcmp(x,"left")==0 ){ + psp->preccounter++; + psp->declassoc = LEFT; + psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; + }else if( strcmp(x,"right")==0 ){ + psp->preccounter++; + psp->declassoc = RIGHT; + psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; + }else if( strcmp(x,"nonassoc")==0 ){ + psp->preccounter++; + psp->declassoc = NONE; + psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; + }else if( strcmp(x,"destructor")==0 ){ + psp->state = WAITING_FOR_DESTRUCTOR_SYMBOL; + }else if( strcmp(x,"type")==0 ){ + psp->state = WAITING_FOR_DATATYPE_SYMBOL; + }else if( strcmp(x,"fallback")==0 ){ + psp->fallback = 0; + psp->state = WAITING_FOR_FALLBACK_ID; + }else if( strcmp(x,"token")==0 ){ + psp->state = WAITING_FOR_TOKEN_NAME; + }else if( strcmp(x,"wildcard")==0 ){ + psp->state = WAITING_FOR_WILDCARD_ID; + }else if( strcmp(x,"token_class")==0 ){ + psp->state = WAITING_FOR_CLASS_ID; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Unknown declaration keyword: \"%%%s\".",x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + } + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Illegal declaration keyword: \"%s\".",x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + } + break; + case WAITING_FOR_DESTRUCTOR_SYMBOL: + if( !ISALPHA(x[0]) ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "Symbol name missing after %%destructor keyword"); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + }else{ + struct symbol *sp = Symbol_new(x); + psp->declargslot = &sp->destructor; + psp->decllinenoslot = &sp->destLineno; + psp->insertLineMacro = 1; + psp->state = WAITING_FOR_DECL_ARG; + } + break; + case WAITING_FOR_DATATYPE_SYMBOL: + if( !ISALPHA(x[0]) ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "Symbol name missing after %%type keyword"); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + }else{ + struct symbol *sp = Symbol_find(x); + if((sp) && (sp->datatype)){ + ErrorMsg(psp->filename,psp->tokenlineno, + "Symbol %%type \"%s\" already defined", x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + }else{ + if (!sp){ + sp = Symbol_new(x); + } + psp->declargslot = &sp->datatype; + psp->insertLineMacro = 0; + psp->state = WAITING_FOR_DECL_ARG; + } + } + break; + case WAITING_FOR_PRECEDENCE_SYMBOL: + if( x[0]=='.' ){ + psp->state = WAITING_FOR_DECL_OR_RULE; + }else if( ISUPPER(x[0]) ){ + struct symbol *sp; + sp = Symbol_new(x); + if( sp->prec>=0 ){ + ErrorMsg(psp->filename,psp->tokenlineno, + "Symbol \"%s\" has already be given a precedence.",x); + psp->errorcnt++; + }else{ + sp->prec = psp->preccounter; + sp->assoc = psp->declassoc; + } + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Can't assign a precedence to \"%s\".",x); + psp->errorcnt++; + } + break; + case WAITING_FOR_DECL_ARG: + if( x[0]=='{' || x[0]=='\"' || ISALNUM(x[0]) ){ + const char *zOld, *zNew; + char *zBuf, *z; + int nOld, n, nLine = 0, nNew, nBack; + int addLineMacro; + char zLine[50]; + zNew = x; + if( zNew[0]=='"' || zNew[0]=='{' ) zNew++; + nNew = lemonStrlen(zNew); + if( *psp->declargslot ){ + zOld = *psp->declargslot; + }else{ + zOld = ""; + } + nOld = lemonStrlen(zOld); + n = nOld + nNew + 20; + addLineMacro = !psp->gp->nolinenosflag && psp->insertLineMacro && + (psp->decllinenoslot==0 || psp->decllinenoslot[0]!=0); + if( addLineMacro ){ + for(z=psp->filename, nBack=0; *z; z++){ + if( *z=='\\' ) nBack++; + } + lemon_sprintf(zLine, "#line %d ", psp->tokenlineno); + nLine = lemonStrlen(zLine); + n += nLine + lemonStrlen(psp->filename) + nBack; + } + *psp->declargslot = (char *) realloc(*psp->declargslot, n); + zBuf = *psp->declargslot + nOld; + if( addLineMacro ){ + if( nOld && zBuf[-1]!='\n' ){ + *(zBuf++) = '\n'; + } + memcpy(zBuf, zLine, nLine); + zBuf += nLine; + *(zBuf++) = '"'; + for(z=psp->filename; *z; z++){ + if( *z=='\\' ){ + *(zBuf++) = '\\'; + } + *(zBuf++) = *z; + } + *(zBuf++) = '"'; + *(zBuf++) = '\n'; + } + if( psp->decllinenoslot && psp->decllinenoslot[0]==0 ){ + psp->decllinenoslot[0] = psp->tokenlineno; + } + memcpy(zBuf, zNew, nNew); + zBuf += nNew; + *zBuf = 0; + psp->state = WAITING_FOR_DECL_OR_RULE; + }else{ + ErrorMsg(psp->filename,psp->tokenlineno, + "Illegal argument to %%%s: %s",psp->declkeyword,x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + } + break; + case WAITING_FOR_FALLBACK_ID: + if( x[0]=='.' ){ + psp->state = WAITING_FOR_DECL_OR_RULE; + }else if( !ISUPPER(x[0]) ){ + ErrorMsg(psp->filename, psp->tokenlineno, + "%%fallback argument \"%s\" should be a token", x); + psp->errorcnt++; + }else{ + struct symbol *sp = Symbol_new(x); + if( psp->fallback==0 ){ + psp->fallback = sp; + }else if( sp->fallback ){ + ErrorMsg(psp->filename, psp->tokenlineno, + "More than one fallback assigned to token %s", x); + psp->errorcnt++; + }else{ + sp->fallback = psp->fallback; + psp->gp->has_fallback = 1; + } + } + break; + case WAITING_FOR_TOKEN_NAME: + /* Tokens do not have to be declared before use. But they can be + ** in order to control their assigned integer number. The number for + ** each token is assigned when it is first seen. So by including + ** + ** %token ONE TWO THREE + ** + ** early in the grammar file, that assigns small consecutive values + ** to each of the tokens ONE TWO and THREE. + */ + if( x[0]=='.' ){ + psp->state = WAITING_FOR_DECL_OR_RULE; + }else if( !ISUPPER(x[0]) ){ + ErrorMsg(psp->filename, psp->tokenlineno, + "%%token argument \"%s\" should be a token", x); + psp->errorcnt++; + }else{ + (void)Symbol_new(x); + } + break; + case WAITING_FOR_WILDCARD_ID: + if( x[0]=='.' ){ + psp->state = WAITING_FOR_DECL_OR_RULE; + }else if( !ISUPPER(x[0]) ){ + ErrorMsg(psp->filename, psp->tokenlineno, + "%%wildcard argument \"%s\" should be a token", x); + psp->errorcnt++; + }else{ + struct symbol *sp = Symbol_new(x); + if( psp->gp->wildcard==0 ){ + psp->gp->wildcard = sp; + }else{ + ErrorMsg(psp->filename, psp->tokenlineno, + "Extra wildcard to token: %s", x); + psp->errorcnt++; + } + } + break; + case WAITING_FOR_CLASS_ID: + if( !ISLOWER(x[0]) ){ + ErrorMsg(psp->filename, psp->tokenlineno, + "%%token_class must be followed by an identifier: ", x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + }else if( Symbol_find(x) ){ + ErrorMsg(psp->filename, psp->tokenlineno, + "Symbol \"%s\" already used", x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + }else{ + psp->tkclass = Symbol_new(x); + psp->tkclass->type = MULTITERMINAL; + psp->state = WAITING_FOR_CLASS_TOKEN; + } + break; + case WAITING_FOR_CLASS_TOKEN: + if( x[0]=='.' ){ + psp->state = WAITING_FOR_DECL_OR_RULE; + }else if( ISUPPER(x[0]) || ((x[0]=='|' || x[0]=='/') && ISUPPER(x[1])) ){ + struct symbol *msp = psp->tkclass; + msp->nsubsym++; + msp->subsym = (struct symbol **) realloc(msp->subsym, + sizeof(struct symbol*)*msp->nsubsym); + if( !ISUPPER(x[0]) ) x++; + msp->subsym[msp->nsubsym-1] = Symbol_new(x); + }else{ + ErrorMsg(psp->filename, psp->tokenlineno, + "%%token_class argument \"%s\" should be a token", x); + psp->errorcnt++; + psp->state = RESYNC_AFTER_DECL_ERROR; + } + break; + case RESYNC_AFTER_RULE_ERROR: +/* if( x[0]=='.' ) psp->state = WAITING_FOR_DECL_OR_RULE; +** break; */ + case RESYNC_AFTER_DECL_ERROR: + if( x[0]=='.' ) psp->state = WAITING_FOR_DECL_OR_RULE; + if( x[0]=='%' ) psp->state = WAITING_FOR_DECL_KEYWORD; + break; + } +} + +/* Run the preprocessor over the input file text. The global variables +** azDefine[0] through azDefine[nDefine-1] contains the names of all defined +** macros. This routine looks for "%ifdef" and "%ifndef" and "%endif" and +** comments them out. Text in between is also commented out as appropriate. +*/ +static void preprocess_input(char *z){ + int i, j, k, n; + int exclude = 0; + int start = 0; + int lineno = 1; + int start_lineno = 1; + for(i=0; z[i]; i++){ + if( z[i]=='\n' ) lineno++; + if( z[i]!='%' || (i>0 && z[i-1]!='\n') ) continue; + if( strncmp(&z[i],"%endif",6)==0 && ISSPACE(z[i+6]) ){ + if( exclude ){ + exclude--; + if( exclude==0 ){ + for(j=start; jfilename; + ps.errorcnt = 0; + ps.state = INITIALIZE; + + /* Begin by reading the input file */ + fp = fopen(ps.filename,"rb"); + if( fp==0 ){ + ErrorMsg(ps.filename,0,"Can't open this file for reading."); + gp->errorcnt++; + return; + } + fseek(fp,0,2); + filesize = ftell(fp); + rewind(fp); + filebuf = (char *)malloc( filesize+1 ); + if( filesize>100000000 || filebuf==0 ){ + ErrorMsg(ps.filename,0,"Input file too large."); + gp->errorcnt++; + fclose(fp); + return; + } + if( fread(filebuf,1,filesize,fp)!=filesize ){ + ErrorMsg(ps.filename,0,"Can't read in all %d bytes of this file.", + filesize); + free(filebuf); + gp->errorcnt++; + fclose(fp); + return; + } + fclose(fp); + filebuf[filesize] = 0; + + /* Make an initial pass through the file to handle %ifdef and %ifndef */ + preprocess_input(filebuf); + + /* Now scan the text of the input file */ + lineno = 1; + for(cp=filebuf; (c= *cp)!=0; ){ + if( c=='\n' ) lineno++; /* Keep track of the line number */ + if( ISSPACE(c) ){ cp++; continue; } /* Skip all white space */ + if( c=='/' && cp[1]=='/' ){ /* Skip C++ style comments */ + cp+=2; + while( (c= *cp)!=0 && c!='\n' ) cp++; + continue; + } + if( c=='/' && cp[1]=='*' ){ /* Skip C style comments */ + cp+=2; + while( (c= *cp)!=0 && (c!='/' || cp[-1]!='*') ){ + if( c=='\n' ) lineno++; + cp++; + } + if( c ) cp++; + continue; + } + ps.tokenstart = cp; /* Mark the beginning of the token */ + ps.tokenlineno = lineno; /* Linenumber on which token begins */ + if( c=='\"' ){ /* String literals */ + cp++; + while( (c= *cp)!=0 && c!='\"' ){ + if( c=='\n' ) lineno++; + cp++; + } + if( c==0 ){ + ErrorMsg(ps.filename,startline, +"String starting on this line is not terminated before the end of the file."); + ps.errorcnt++; + nextcp = cp; + }else{ + nextcp = cp+1; + } + }else if( c=='{' ){ /* A block of C code */ + int level; + cp++; + for(level=1; (c= *cp)!=0 && (level>1 || c!='}'); cp++){ + if( c=='\n' ) lineno++; + else if( c=='{' ) level++; + else if( c=='}' ) level--; + else if( c=='/' && cp[1]=='*' ){ /* Skip comments */ + int prevc; + cp = &cp[2]; + prevc = 0; + while( (c= *cp)!=0 && (c!='/' || prevc!='*') ){ + if( c=='\n' ) lineno++; + prevc = c; + cp++; + } + }else if( c=='/' && cp[1]=='/' ){ /* Skip C++ style comments too */ + cp = &cp[2]; + while( (c= *cp)!=0 && c!='\n' ) cp++; + if( c ) lineno++; + }else if( c=='\'' || c=='\"' ){ /* String a character literals */ + int startchar, prevc; + startchar = c; + prevc = 0; + for(cp++; (c= *cp)!=0 && (c!=startchar || prevc=='\\'); cp++){ + if( c=='\n' ) lineno++; + if( prevc=='\\' ) prevc = 0; + else prevc = c; + } + } + } + if( c==0 ){ + ErrorMsg(ps.filename,ps.tokenlineno, +"C code starting on this line is not terminated before the end of the file."); + ps.errorcnt++; + nextcp = cp; + }else{ + nextcp = cp+1; + } + }else if( ISALNUM(c) ){ /* Identifiers */ + while( (c= *cp)!=0 && (ISALNUM(c) || c=='_') ) cp++; + nextcp = cp; + }else if( c==':' && cp[1]==':' && cp[2]=='=' ){ /* The operator "::=" */ + cp += 3; + nextcp = cp; + }else if( (c=='/' || c=='|') && ISALPHA(cp[1]) ){ + cp += 2; + while( (c = *cp)!=0 && (ISALNUM(c) || c=='_') ) cp++; + nextcp = cp; + }else{ /* All other (one character) operators */ + cp++; + nextcp = cp; + } + c = *cp; + *cp = 0; /* Null terminate the token */ + parseonetoken(&ps); /* Parse the token */ + *cp = (char)c; /* Restore the buffer */ + cp = nextcp; + } + free(filebuf); /* Release the buffer after parsing */ + gp->rule = ps.firstrule; + gp->errorcnt = ps.errorcnt; +} +/*************************** From the file "plink.c" *********************/ +/* +** Routines processing configuration follow-set propagation links +** in the LEMON parser generator. +*/ +static struct plink *plink_freelist = 0; + +/* Allocate a new plink */ +struct plink *Plink_new(void){ + struct plink *newlink; + + if( plink_freelist==0 ){ + int i; + int amt = 100; + plink_freelist = (struct plink *)calloc( amt, sizeof(struct plink) ); + if( plink_freelist==0 ){ + fprintf(stderr, + "Unable to allocate memory for a new follow-set propagation link.\n"); + exit(1); + } + for(i=0; inext; + return newlink; +} + +/* Add a plink to a plink list */ +void Plink_add(struct plink **plpp, struct config *cfp) +{ + struct plink *newlink; + newlink = Plink_new(); + newlink->next = *plpp; + *plpp = newlink; + newlink->cfp = cfp; +} + +/* Transfer every plink on the list "from" to the list "to" */ +void Plink_copy(struct plink **to, struct plink *from) +{ + struct plink *nextpl; + while( from ){ + nextpl = from->next; + from->next = *to; + *to = from; + from = nextpl; + } +} + +/* Delete every plink on the list */ +void Plink_delete(struct plink *plp) +{ + struct plink *nextpl; + + while( plp ){ + nextpl = plp->next; + plp->next = plink_freelist; + plink_freelist = plp; + plp = nextpl; + } +} +/*********************** From the file "report.c" **************************/ +/* +** Procedures for generating reports and tables in the LEMON parser generator. +*/ + +/* Generate a filename with the given suffix. Space to hold the +** name comes from malloc() and must be freed by the calling +** function. +*/ +PRIVATE char *file_makename(struct lemon *lemp, const char *suffix) +{ + char *name; + char *cp; + + name = (char*)malloc( lemonStrlen(lemp->filename) + lemonStrlen(suffix) + 5 ); + if( name==0 ){ + fprintf(stderr,"Can't allocate space for a filename.\n"); + exit(1); + } + lemon_strcpy(name,lemp->filename); + cp = strrchr(name,'.'); + if( cp ) *cp = 0; + lemon_strcat(name,suffix); + return name; +} + +/* Open a file with a name based on the name of the input file, +** but with a different (specified) suffix, and return a pointer +** to the stream */ +PRIVATE FILE *file_open( + struct lemon *lemp, + const char *suffix, + const char *mode +){ + FILE *fp; + + if( lemp->outname ) free(lemp->outname); + lemp->outname = file_makename(lemp, suffix); + fp = fopen(lemp->outname,mode); + if( fp==0 && *mode=='w' ){ + fprintf(stderr,"Can't open file \"%s\".\n",lemp->outname); + lemp->errorcnt++; + return 0; + } + return fp; +} + +/* Duplicate the input file without comments and without actions +** on rules */ +void Reprint(struct lemon *lemp) +{ + struct rule *rp; + struct symbol *sp; + int i, j, maxlen, len, ncolumns, skip; + printf("// Reprint of input file \"%s\".\n// Symbols:\n",lemp->filename); + maxlen = 10; + for(i=0; insymbol; i++){ + sp = lemp->symbols[i]; + len = lemonStrlen(sp->name); + if( len>maxlen ) maxlen = len; + } + ncolumns = 76/(maxlen+5); + if( ncolumns<1 ) ncolumns = 1; + skip = (lemp->nsymbol + ncolumns - 1)/ncolumns; + for(i=0; insymbol; j+=skip){ + sp = lemp->symbols[j]; + assert( sp->index==j ); + printf(" %3d %-*.*s",j,maxlen,maxlen,sp->name); + } + printf("\n"); + } + for(rp=lemp->rule; rp; rp=rp->next){ + printf("%s",rp->lhs->name); + /* if( rp->lhsalias ) printf("(%s)",rp->lhsalias); */ + printf(" ::="); + for(i=0; inrhs; i++){ + sp = rp->rhs[i]; + if( sp->type==MULTITERMINAL ){ + printf(" %s", sp->subsym[0]->name); + for(j=1; jnsubsym; j++){ + printf("|%s", sp->subsym[j]->name); + } + }else{ + printf(" %s", sp->name); + } + /* if( rp->rhsalias[i] ) printf("(%s)",rp->rhsalias[i]); */ + } + printf("."); + if( rp->precsym ) printf(" [%s]",rp->precsym->name); + /* if( rp->code ) printf("\n %s",rp->code); */ + printf("\n"); + } +} + +/* Print a single rule. +*/ +void RulePrint(FILE *fp, struct rule *rp, int iCursor){ + struct symbol *sp; + int i, j; + fprintf(fp,"%s ::=",rp->lhs->name); + for(i=0; i<=rp->nrhs; i++){ + if( i==iCursor ) fprintf(fp," *"); + if( i==rp->nrhs ) break; + sp = rp->rhs[i]; + if( sp->type==MULTITERMINAL ){ + fprintf(fp," %s", sp->subsym[0]->name); + for(j=1; jnsubsym; j++){ + fprintf(fp,"|%s",sp->subsym[j]->name); + } + }else{ + fprintf(fp," %s", sp->name); + } + } +} + +/* Print the rule for a configuration. +*/ +void ConfigPrint(FILE *fp, struct config *cfp){ + RulePrint(fp, cfp->rp, cfp->dot); +} + +/* #define TEST */ +#if 0 +/* Print a set */ +PRIVATE void SetPrint(out,set,lemp) +FILE *out; +char *set; +struct lemon *lemp; +{ + int i; + char *spacer; + spacer = ""; + fprintf(out,"%12s[",""); + for(i=0; interminal; i++){ + if( SetFind(set,i) ){ + fprintf(out,"%s%s",spacer,lemp->symbols[i]->name); + spacer = " "; + } + } + fprintf(out,"]\n"); +} + +/* Print a plink chain */ +PRIVATE void PlinkPrint(out,plp,tag) +FILE *out; +struct plink *plp; +char *tag; +{ + while( plp ){ + fprintf(out,"%12s%s (state %2d) ","",tag,plp->cfp->stp->statenum); + ConfigPrint(out,plp->cfp); + fprintf(out,"\n"); + plp = plp->next; + } +} +#endif + +/* Print an action to the given file descriptor. Return FALSE if +** nothing was actually printed. +*/ +int PrintAction( + struct action *ap, /* The action to print */ + FILE *fp, /* Print the action here */ + int indent /* Indent by this amount */ +){ + int result = 1; + switch( ap->type ){ + case SHIFT: { + struct state *stp = ap->x.stp; + fprintf(fp,"%*s shift %-7d",indent,ap->sp->name,stp->statenum); + break; + } + case REDUCE: { + struct rule *rp = ap->x.rp; + fprintf(fp,"%*s reduce %-7d",indent,ap->sp->name,rp->iRule); + RulePrint(fp, rp, -1); + break; + } + case SHIFTREDUCE: { + struct rule *rp = ap->x.rp; + fprintf(fp,"%*s shift-reduce %-7d",indent,ap->sp->name,rp->iRule); + RulePrint(fp, rp, -1); + break; + } + case ACCEPT: + fprintf(fp,"%*s accept",indent,ap->sp->name); + break; + case ERROR: + fprintf(fp,"%*s error",indent,ap->sp->name); + break; + case SRCONFLICT: + case RRCONFLICT: + fprintf(fp,"%*s reduce %-7d ** Parsing conflict **", + indent,ap->sp->name,ap->x.rp->iRule); + break; + case SSCONFLICT: + fprintf(fp,"%*s shift %-7d ** Parsing conflict **", + indent,ap->sp->name,ap->x.stp->statenum); + break; + case SH_RESOLVED: + if( showPrecedenceConflict ){ + fprintf(fp,"%*s shift %-7d -- dropped by precedence", + indent,ap->sp->name,ap->x.stp->statenum); + }else{ + result = 0; + } + break; + case RD_RESOLVED: + if( showPrecedenceConflict ){ + fprintf(fp,"%*s reduce %-7d -- dropped by precedence", + indent,ap->sp->name,ap->x.rp->iRule); + }else{ + result = 0; + } + break; + case NOT_USED: + result = 0; + break; + } + if( result && ap->spOpt ){ + fprintf(fp," /* because %s==%s */", ap->sp->name, ap->spOpt->name); + } + return result; +} + +/* Generate the "*.out" log file */ +void ReportOutput(struct lemon *lemp) +{ + int i; + struct state *stp; + struct config *cfp; + struct action *ap; + FILE *fp; + + fp = file_open(lemp,".out","wb"); + if( fp==0 ) return; + for(i=0; inxstate; i++){ + stp = lemp->sorted[i]; + fprintf(fp,"State %d:\n",stp->statenum); + if( lemp->basisflag ) cfp=stp->bp; + else cfp=stp->cfp; + while( cfp ){ + char buf[20]; + if( cfp->dot==cfp->rp->nrhs ){ + lemon_sprintf(buf,"(%d)",cfp->rp->iRule); + fprintf(fp," %5s ",buf); + }else{ + fprintf(fp," "); + } + ConfigPrint(fp,cfp); + fprintf(fp,"\n"); +#if 0 + SetPrint(fp,cfp->fws,lemp); + PlinkPrint(fp,cfp->fplp,"To "); + PlinkPrint(fp,cfp->bplp,"From"); +#endif + if( lemp->basisflag ) cfp=cfp->bp; + else cfp=cfp->next; + } + fprintf(fp,"\n"); + for(ap=stp->ap; ap; ap=ap->next){ + if( PrintAction(ap,fp,30) ) fprintf(fp,"\n"); + } + fprintf(fp,"\n"); + } + fprintf(fp, "----------------------------------------------------\n"); + fprintf(fp, "Symbols:\n"); + for(i=0; insymbol; i++){ + int j; + struct symbol *sp; + + sp = lemp->symbols[i]; + fprintf(fp, " %3d: %s", i, sp->name); + if( sp->type==NONTERMINAL ){ + fprintf(fp, ":"); + if( sp->lambda ){ + fprintf(fp, " "); + } + for(j=0; jnterminal; j++){ + if( sp->firstset && SetFind(sp->firstset, j) ){ + fprintf(fp, " %s", lemp->symbols[j]->name); + } + } + } + fprintf(fp, "\n"); + } + fclose(fp); + return; +} + +/* Search for the file "name" which is in the same directory as +** the exacutable */ +PRIVATE char *pathsearch(char *argv0, char *name, int modemask) +{ + const char *pathlist; + char *pathbufptr; + char *pathbuf; + char *path,*cp; + char c; + +#ifdef __WIN32__ + cp = strrchr(argv0,'\\'); +#else + cp = strrchr(argv0,'/'); +#endif + if( cp ){ + c = *cp; + *cp = 0; + path = (char *)malloc( lemonStrlen(argv0) + lemonStrlen(name) + 2 ); + if( path ) lemon_sprintf(path,"%s/%s",argv0,name); + *cp = c; + }else{ + pathlist = getenv("PATH"); + if( pathlist==0 ) pathlist = ".:/bin:/usr/bin"; + pathbuf = (char *) malloc( lemonStrlen(pathlist) + 1 ); + path = (char *)malloc( lemonStrlen(pathlist)+lemonStrlen(name)+2 ); + if( (pathbuf != 0) && (path!=0) ){ + pathbufptr = pathbuf; + lemon_strcpy(pathbuf, pathlist); + while( *pathbuf ){ + cp = strchr(pathbuf,':'); + if( cp==0 ) cp = &pathbuf[lemonStrlen(pathbuf)]; + c = *cp; + *cp = 0; + lemon_sprintf(path,"%s/%s",pathbuf,name); + *cp = c; + if( c==0 ) pathbuf[0] = 0; + else pathbuf = &cp[1]; + if( access(path,modemask)==0 ) break; + } + free(pathbufptr); + } + } + return path; +} + +/* Given an action, compute the integer value for that action +** which is to be put in the action table of the generated machine. +** Return negative if no action should be generated. +*/ +PRIVATE int compute_action(struct lemon *lemp, struct action *ap) +{ + int act; + switch( ap->type ){ + case SHIFT: act = ap->x.stp->statenum; break; + case SHIFTREDUCE: { + act = ap->x.rp->iRule + lemp->nstate; + /* Since a SHIFT is inherient after a prior REDUCE, convert any + ** SHIFTREDUCE action with a nonterminal on the LHS into a simple + ** REDUCE action: */ + if( ap->sp->index>=lemp->nterminal ) act += lemp->nrule; + break; + } + case REDUCE: act = ap->x.rp->iRule + lemp->nstate+lemp->nrule; break; + case ERROR: act = lemp->nstate + lemp->nrule*2; break; + case ACCEPT: act = lemp->nstate + lemp->nrule*2 + 1; break; + default: act = -1; break; + } + return act; +} + +#define LINESIZE 1000 +/* The next cluster of routines are for reading the template file +** and writing the results to the generated parser */ +/* The first function transfers data from "in" to "out" until +** a line is seen which begins with "%%". The line number is +** tracked. +** +** if name!=0, then any word that begin with "Parse" is changed to +** begin with *name instead. +*/ +PRIVATE void tplt_xfer(char *name, FILE *in, FILE *out, int *lineno) +{ + int i, iStart; + char line[LINESIZE]; + while( fgets(line,LINESIZE,in) && (line[0]!='%' || line[1]!='%') ){ + (*lineno)++; + iStart = 0; + if( name ){ + for(i=0; line[i]; i++){ + if( line[i]=='P' && strncmp(&line[i],"Parse",5)==0 + && (i==0 || !ISALPHA(line[i-1])) + ){ + if( i>iStart ) fprintf(out,"%.*s",i-iStart,&line[iStart]); + fprintf(out,"%s",name); + i += 4; + iStart = i+1; + } + } + } + fprintf(out,"%s",&line[iStart]); + } +} + +/* The next function finds the template file and opens it, returning +** a pointer to the opened file. */ +PRIVATE FILE *tplt_open(struct lemon *lemp) +{ + static char templatename[] = "lempar.c"; + char buf[1000]; + FILE *in; + char *tpltname; + char *cp; + + /* first, see if user specified a template filename on the command line. */ + if (user_templatename != 0) { + if( access(user_templatename,004)==-1 ){ + fprintf(stderr,"Can't find the parser driver template file \"%s\".\n", + user_templatename); + lemp->errorcnt++; + return 0; + } + in = fopen(user_templatename,"rb"); + if( in==0 ){ + fprintf(stderr,"Can't open the template file \"%s\".\n", + user_templatename); + lemp->errorcnt++; + return 0; + } + return in; + } + + cp = strrchr(lemp->filename,'.'); + if( cp ){ + lemon_sprintf(buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename); + }else{ + lemon_sprintf(buf,"%s.lt",lemp->filename); + } + if( access(buf,004)==0 ){ + tpltname = buf; + }else if( access(templatename,004)==0 ){ + tpltname = templatename; + }else{ + tpltname = pathsearch(lemp->argv0,templatename,0); + } + if( tpltname==0 ){ + fprintf(stderr,"Can't find the parser driver template file \"%s\".\n", + templatename); + lemp->errorcnt++; + return 0; + } + in = fopen(tpltname,"rb"); + if( in==0 ){ + fprintf(stderr,"Can't open the template file \"%s\".\n",templatename); + lemp->errorcnt++; + return 0; + } + return in; +} + +/* Print a #line directive line to the output file. */ +PRIVATE void tplt_linedir(FILE *out, int lineno, char *filename) +{ + fprintf(out,"#line %d \"",lineno); + while( *filename ){ + if( *filename == '\\' ) putc('\\',out); + putc(*filename,out); + filename++; + } + fprintf(out,"\"\n"); +} + +/* Print a string to the file and keep the linenumber up to date */ +PRIVATE void tplt_print(FILE *out, struct lemon *lemp, char *str, int *lineno) +{ + if( str==0 ) return; + while( *str ){ + putc(*str,out); + if( *str=='\n' ) (*lineno)++; + str++; + } + if( str[-1]!='\n' ){ + putc('\n',out); + (*lineno)++; + } + if (!lemp->nolinenosflag) { + (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); + } + return; +} + +/* +** The following routine emits code for the destructor for the +** symbol sp +*/ +void emit_destructor_code( + FILE *out, + struct symbol *sp, + struct lemon *lemp, + int *lineno +){ + char *cp = 0; + + if( sp->type==TERMINAL ){ + cp = lemp->tokendest; + if( cp==0 ) return; + fprintf(out,"{\n"); (*lineno)++; + }else if( sp->destructor ){ + cp = sp->destructor; + fprintf(out,"{\n"); (*lineno)++; + if( !lemp->nolinenosflag ){ + (*lineno)++; + tplt_linedir(out,sp->destLineno,lemp->filename); + } + }else if( lemp->vardest ){ + cp = lemp->vardest; + if( cp==0 ) return; + fprintf(out,"{\n"); (*lineno)++; + }else{ + assert( 0 ); /* Cannot happen */ + } + for(; *cp; cp++){ + if( *cp=='$' && cp[1]=='$' ){ + fprintf(out,"(yypminor->yy%d)",sp->dtnum); + cp++; + continue; + } + if( *cp=='\n' ) (*lineno)++; + fputc(*cp,out); + } + fprintf(out,"\n"); (*lineno)++; + if (!lemp->nolinenosflag) { + (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); + } + fprintf(out,"}\n"); (*lineno)++; + return; +} + +/* +** Return TRUE (non-zero) if the given symbol has a destructor. +*/ +int has_destructor(struct symbol *sp, struct lemon *lemp) +{ + int ret; + if( sp->type==TERMINAL ){ + ret = lemp->tokendest!=0; + }else{ + ret = lemp->vardest!=0 || sp->destructor!=0; + } + return ret; +} + +/* +** Append text to a dynamically allocated string. If zText is 0 then +** reset the string to be empty again. Always return the complete text +** of the string (which is overwritten with each call). +** +** n bytes of zText are stored. If n==0 then all of zText up to the first +** \000 terminator is stored. zText can contain up to two instances of +** %d. The values of p1 and p2 are written into the first and second +** %d. +** +** If n==-1, then the previous character is overwritten. +*/ +PRIVATE char *append_str(const char *zText, int n, int p1, int p2){ + static char empty[1] = { 0 }; + static char *z = 0; + static int alloced = 0; + static int used = 0; + int c; + char zInt[40]; + if( zText==0 ){ + if( used==0 && z!=0 ) z[0] = 0; + used = 0; + return z; + } + if( n<=0 ){ + if( n<0 ){ + used += n; + assert( used>=0 ); + } + n = lemonStrlen(zText); + } + if( (int) (n+sizeof(zInt)*2+used) >= alloced ){ + alloced = n + sizeof(zInt)*2 + used + 200; + z = (char *) realloc(z, alloced); + } + if( z==0 ) return empty; + while( n-- > 0 ){ + c = *(zText++); + if( c=='%' && n>0 && zText[0]=='d' ){ + lemon_sprintf(zInt, "%d", p1); + p1 = p2; + lemon_strcpy(&z[used], zInt); + used += lemonStrlen(&z[used]); + zText++; + n--; + }else{ + z[used++] = (char)c; + } + } + z[used] = 0; + return z; +} + +/* +** Write and transform the rp->code string so that symbols are expanded. +** Populate the rp->codePrefix and rp->codeSuffix strings, as appropriate. +** +** Return 1 if the expanded code requires that "yylhsminor" local variable +** to be defined. +*/ +PRIVATE int translate_code(struct lemon *lemp, struct rule *rp){ + char *cp, *xp; + int i; + int rc = 0; /* True if yylhsminor is used */ + int dontUseRhs0 = 0; /* If true, use of left-most RHS label is illegal */ + const char *zSkip = 0; /* The zOvwrt comment within rp->code, or NULL */ + char lhsused = 0; /* True if the LHS element has been used */ + char lhsdirect; /* True if LHS writes directly into stack */ + char used[MAXRHS]; /* True for each RHS element which is used */ + char zLhs[50]; /* Convert the LHS symbol into this string */ + char zOvwrt[900]; /* Comment that to allow LHS to overwrite RHS */ + + for(i=0; inrhs; i++) used[i] = 0; + lhsused = 0; + + if( rp->code==0 ){ + static char newlinestr[2] = { '\n', '\0' }; + rp->code = newlinestr; + rp->line = rp->ruleline; + rp->noCode = 1; + }else{ + rp->noCode = 0; + } + + + if( rp->nrhs==0 ){ + /* If there are no RHS symbols, then writing directly to the LHS is ok */ + lhsdirect = 1; + }else if( rp->rhsalias[0]==0 ){ + /* The left-most RHS symbol has no value. LHS direct is ok. But + ** we have to call the distructor on the RHS symbol first. */ + lhsdirect = 1; + if( has_destructor(rp->rhs[0],lemp) ){ + append_str(0,0,0,0); + append_str(" yy_destructor(yypParser,%d,&yymsp[%d].minor);\n", 0, + rp->rhs[0]->index,1-rp->nrhs); + rp->codePrefix = Strsafe(append_str(0,0,0,0)); + rp->noCode = 0; + } + }else if( rp->lhsalias==0 ){ + /* There is no LHS value symbol. */ + lhsdirect = 1; + }else if( strcmp(rp->lhsalias,rp->rhsalias[0])==0 ){ + /* The LHS symbol and the left-most RHS symbol are the same, so + ** direct writing is allowed */ + lhsdirect = 1; + lhsused = 1; + used[0] = 1; + if( rp->lhs->dtnum!=rp->rhs[0]->dtnum ){ + ErrorMsg(lemp->filename,rp->ruleline, + "%s(%s) and %s(%s) share the same label but have " + "different datatypes.", + rp->lhs->name, rp->lhsalias, rp->rhs[0]->name, rp->rhsalias[0]); + lemp->errorcnt++; + } + }else{ + lemon_sprintf(zOvwrt, "/*%s-overwrites-%s*/", + rp->lhsalias, rp->rhsalias[0]); + zSkip = strstr(rp->code, zOvwrt); + if( zSkip!=0 ){ + /* The code contains a special comment that indicates that it is safe + ** for the LHS label to overwrite left-most RHS label. */ + lhsdirect = 1; + }else{ + lhsdirect = 0; + } + } + if( lhsdirect ){ + sprintf(zLhs, "yymsp[%d].minor.yy%d",1-rp->nrhs,rp->lhs->dtnum); + }else{ + rc = 1; + sprintf(zLhs, "yylhsminor.yy%d",rp->lhs->dtnum); + } + + append_str(0,0,0,0); + + /* This const cast is wrong but harmless, if we're careful. */ + for(cp=(char *)rp->code; *cp; cp++){ + if( cp==zSkip ){ + append_str(zOvwrt,0,0,0); + cp += lemonStrlen(zOvwrt)-1; + dontUseRhs0 = 1; + continue; + } + if( ISALPHA(*cp) && (cp==rp->code || (!ISALNUM(cp[-1]) && cp[-1]!='_')) ){ + char saved; + for(xp= &cp[1]; ISALNUM(*xp) || *xp=='_'; xp++); + saved = *xp; + *xp = 0; + if( rp->lhsalias && strcmp(cp,rp->lhsalias)==0 ){ + append_str(zLhs,0,0,0); + cp = xp; + lhsused = 1; + }else{ + for(i=0; inrhs; i++){ + if( rp->rhsalias[i] && strcmp(cp,rp->rhsalias[i])==0 ){ + if( i==0 && dontUseRhs0 ){ + ErrorMsg(lemp->filename,rp->ruleline, + "Label %s used after '%s'.", + rp->rhsalias[0], zOvwrt); + lemp->errorcnt++; + }else if( cp!=rp->code && cp[-1]=='@' ){ + /* If the argument is of the form @X then substituted + ** the token number of X, not the value of X */ + append_str("yymsp[%d].major",-1,i-rp->nrhs+1,0); + }else{ + struct symbol *sp = rp->rhs[i]; + int dtnum; + if( sp->type==MULTITERMINAL ){ + dtnum = sp->subsym[0]->dtnum; + }else{ + dtnum = sp->dtnum; + } + append_str("yymsp[%d].minor.yy%d",0,i-rp->nrhs+1, dtnum); + } + cp = xp; + used[i] = 1; + break; + } + } + } + *xp = saved; + } + append_str(cp, 1, 0, 0); + } /* End loop */ + + /* Main code generation completed */ + cp = append_str(0,0,0,0); + if( cp && cp[0] ) rp->code = Strsafe(cp); + append_str(0,0,0,0); + + /* Check to make sure the LHS has been used */ + if( rp->lhsalias && !lhsused ){ + ErrorMsg(lemp->filename,rp->ruleline, + "Label \"%s\" for \"%s(%s)\" is never used.", + rp->lhsalias,rp->lhs->name,rp->lhsalias); + lemp->errorcnt++; + } + + /* Generate destructor code for RHS minor values which are not referenced. + ** Generate error messages for unused labels and duplicate labels. + */ + for(i=0; inrhs; i++){ + if( rp->rhsalias[i] ){ + if( i>0 ){ + int j; + if( rp->lhsalias && strcmp(rp->lhsalias,rp->rhsalias[i])==0 ){ + ErrorMsg(lemp->filename,rp->ruleline, + "%s(%s) has the same label as the LHS but is not the left-most " + "symbol on the RHS.", + rp->rhs[i]->name, rp->rhsalias); + lemp->errorcnt++; + } + for(j=0; jrhsalias[j] && strcmp(rp->rhsalias[j],rp->rhsalias[i])==0 ){ + ErrorMsg(lemp->filename,rp->ruleline, + "Label %s used for multiple symbols on the RHS of a rule.", + rp->rhsalias[i]); + lemp->errorcnt++; + break; + } + } + } + if( !used[i] ){ + ErrorMsg(lemp->filename,rp->ruleline, + "Label %s for \"%s(%s)\" is never used.", + rp->rhsalias[i],rp->rhs[i]->name,rp->rhsalias[i]); + lemp->errorcnt++; + } + }else if( i>0 && has_destructor(rp->rhs[i],lemp) ){ + append_str(" yy_destructor(yypParser,%d,&yymsp[%d].minor);\n", 0, + rp->rhs[i]->index,i-rp->nrhs+1); + } + } + + /* If unable to write LHS values directly into the stack, write the + ** saved LHS value now. */ + if( lhsdirect==0 ){ + append_str(" yymsp[%d].minor.yy%d = ", 0, 1-rp->nrhs, rp->lhs->dtnum); + append_str(zLhs, 0, 0, 0); + append_str(";\n", 0, 0, 0); + } + + /* Suffix code generation complete */ + cp = append_str(0,0,0,0); + if( cp && cp[0] ){ + rp->codeSuffix = Strsafe(cp); + rp->noCode = 0; + } + + return rc; +} + +/* +** Generate code which executes when the rule "rp" is reduced. Write +** the code to "out". Make sure lineno stays up-to-date. +*/ +PRIVATE void emit_code( + FILE *out, + struct rule *rp, + struct lemon *lemp, + int *lineno +){ + const char *cp; + + /* Setup code prior to the #line directive */ + if( rp->codePrefix && rp->codePrefix[0] ){ + fprintf(out, "{%s", rp->codePrefix); + for(cp=rp->codePrefix; *cp; cp++){ if( *cp=='\n' ) (*lineno)++; } + } + + /* Generate code to do the reduce action */ + if( rp->code ){ + if( !lemp->nolinenosflag ){ + (*lineno)++; + tplt_linedir(out,rp->line,lemp->filename); + } + fprintf(out,"{%s",rp->code); + for(cp=rp->code; *cp; cp++){ if( *cp=='\n' ) (*lineno)++; } + fprintf(out,"}\n"); (*lineno)++; + if( !lemp->nolinenosflag ){ + (*lineno)++; + tplt_linedir(out,*lineno,lemp->outname); + } + } + + /* Generate breakdown code that occurs after the #line directive */ + if( rp->codeSuffix && rp->codeSuffix[0] ){ + fprintf(out, "%s", rp->codeSuffix); + for(cp=rp->codeSuffix; *cp; cp++){ if( *cp=='\n' ) (*lineno)++; } + } + + if( rp->codePrefix ){ + fprintf(out, "}\n"); (*lineno)++; + } + + return; +} + +/* +** Print the definition of the union used for the parser's data stack. +** This union contains fields for every possible data type for tokens +** and nonterminals. In the process of computing and printing this +** union, also set the ".dtnum" field of every terminal and nonterminal +** symbol. +*/ +void print_stack_union( + FILE *out, /* The output stream */ + struct lemon *lemp, /* The main info structure for this parser */ + int *plineno, /* Pointer to the line number */ + int mhflag /* True if generating makeheaders output */ +){ + int lineno = *plineno; /* The line number of the output */ + char **types; /* A hash table of datatypes */ + int arraysize; /* Size of the "types" array */ + int maxdtlength; /* Maximum length of any ".datatype" field. */ + char *stddt; /* Standardized name for a datatype */ + int i,j; /* Loop counters */ + unsigned hash; /* For hashing the name of a type */ + const char *name; /* Name of the parser */ + + /* Allocate and initialize types[] and allocate stddt[] */ + arraysize = lemp->nsymbol * 2; + types = (char**)calloc( arraysize, sizeof(char*) ); + if( types==0 ){ + fprintf(stderr,"Out of memory.\n"); + exit(1); + } + for(i=0; ivartype ){ + maxdtlength = lemonStrlen(lemp->vartype); + } + for(i=0; insymbol; i++){ + int len; + struct symbol *sp = lemp->symbols[i]; + if( sp->datatype==0 ) continue; + len = lemonStrlen(sp->datatype); + if( len>maxdtlength ) maxdtlength = len; + } + stddt = (char*)malloc( maxdtlength*2 + 1 ); + if( stddt==0 ){ + fprintf(stderr,"Out of memory.\n"); + exit(1); + } + + /* Build a hash table of datatypes. The ".dtnum" field of each symbol + ** is filled in with the hash index plus 1. A ".dtnum" value of 0 is + ** used for terminal symbols. If there is no %default_type defined then + ** 0 is also used as the .dtnum value for nonterminals which do not specify + ** a datatype using the %type directive. + */ + for(i=0; insymbol; i++){ + struct symbol *sp = lemp->symbols[i]; + char *cp; + if( sp==lemp->errsym ){ + sp->dtnum = arraysize+1; + continue; + } + if( sp->type!=NONTERMINAL || (sp->datatype==0 && lemp->vartype==0) ){ + sp->dtnum = 0; + continue; + } + cp = sp->datatype; + if( cp==0 ) cp = lemp->vartype; + j = 0; + while( ISSPACE(*cp) ) cp++; + while( *cp ) stddt[j++] = *cp++; + while( j>0 && ISSPACE(stddt[j-1]) ) j--; + stddt[j] = 0; + if( lemp->tokentype && strcmp(stddt, lemp->tokentype)==0 ){ + sp->dtnum = 0; + continue; + } + hash = 0; + for(j=0; stddt[j]; j++){ + hash = hash*53 + stddt[j]; + } + hash = (hash & 0x7fffffff)%arraysize; + while( types[hash] ){ + if( strcmp(types[hash],stddt)==0 ){ + sp->dtnum = hash + 1; + break; + } + hash++; + if( hash>=(unsigned)arraysize ) hash = 0; + } + if( types[hash]==0 ){ + sp->dtnum = hash + 1; + types[hash] = (char*)malloc( lemonStrlen(stddt)+1 ); + if( types[hash]==0 ){ + fprintf(stderr,"Out of memory.\n"); + exit(1); + } + lemon_strcpy(types[hash],stddt); + } + } + + /* Print out the definition of YYTOKENTYPE and YYMINORTYPE */ + name = lemp->name ? lemp->name : "Parse"; + lineno = *plineno; + if( mhflag ){ fprintf(out,"#if INTERFACE\n"); lineno++; } + fprintf(out,"#define %sTOKENTYPE %s\n",name, + lemp->tokentype?lemp->tokentype:"void*"); lineno++; + if( mhflag ){ fprintf(out,"#endif\n"); lineno++; } + fprintf(out,"typedef union {\n"); lineno++; + fprintf(out," int yyinit;\n"); lineno++; + fprintf(out," %sTOKENTYPE yy0;\n",name); lineno++; + for(i=0; ierrsym->useCnt ){ + fprintf(out," int yy%d;\n",lemp->errsym->dtnum); lineno++; + } + free(stddt); + free(types); + fprintf(out,"} YYMINORTYPE;\n"); lineno++; + *plineno = lineno; +} + +/* +** Return the name of a C datatype able to represent values between +** lwr and upr, inclusive. If pnByte!=NULL then also write the sizeof +** for that type (1, 2, or 4) into *pnByte. +*/ +static const char *minimum_size_type(int lwr, int upr, int *pnByte){ + const char *zType = "int"; + int nByte = 4; + if( lwr>=0 ){ + if( upr<=255 ){ + zType = "unsigned char"; + nByte = 1; + }else if( upr<65535 ){ + zType = "unsigned short int"; + nByte = 2; + }else{ + zType = "unsigned int"; + nByte = 4; + } + }else if( lwr>=-127 && upr<=127 ){ + zType = "signed char"; + nByte = 1; + }else if( lwr>=-32767 && upr<32767 ){ + zType = "short"; + nByte = 2; + } + if( pnByte ) *pnByte = nByte; + return zType; +} + +/* +** Each state contains a set of token transaction and a set of +** nonterminal transactions. Each of these sets makes an instance +** of the following structure. An array of these structures is used +** to order the creation of entries in the yy_action[] table. +*/ +struct axset { + struct state *stp; /* A pointer to a state */ + int isTkn; /* True to use tokens. False for non-terminals */ + int nAction; /* Number of actions */ + int iOrder; /* Original order of action sets */ +}; + +/* +** Compare to axset structures for sorting purposes +*/ +static int axset_compare(const void *a, const void *b){ + struct axset *p1 = (struct axset*)a; + struct axset *p2 = (struct axset*)b; + int c; + c = p2->nAction - p1->nAction; + if( c==0 ){ + c = p1->iOrder - p2->iOrder; + } + assert( c!=0 || p1==p2 ); + return c; +} + +/* +** Write text on "out" that describes the rule "rp". +*/ +static void writeRuleText(FILE *out, struct rule *rp){ + int j; + fprintf(out,"%s ::=", rp->lhs->name); + for(j=0; jnrhs; j++){ + struct symbol *sp = rp->rhs[j]; + if( sp->type!=MULTITERMINAL ){ + fprintf(out," %s", sp->name); + }else{ + int k; + fprintf(out," %s", sp->subsym[0]->name); + for(k=1; knsubsym; k++){ + fprintf(out,"|%s",sp->subsym[k]->name); + } + } + } +} + + +/* Generate C source code for the parser */ +void ReportTable( + struct lemon *lemp, + int mhflag /* Output in makeheaders format if true */ +){ + FILE *out, *in; + char line[LINESIZE]; + int lineno; + struct state *stp; + struct action *ap; + struct rule *rp; + struct acttab *pActtab; + int i, j, n, sz; + int szActionType; /* sizeof(YYACTIONTYPE) */ + int szCodeType; /* sizeof(YYCODETYPE) */ + const char *name; + int mnTknOfst, mxTknOfst; + int mnNtOfst, mxNtOfst; + struct axset *ax; + + in = tplt_open(lemp); + if( in==0 ) return; + out = file_open(lemp,".c","wb"); + if( out==0 ){ + fclose(in); + return; + } + lineno = 1; + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate the include code, if any */ + tplt_print(out,lemp,lemp->include,&lineno); + if( mhflag ){ + char *incName = file_makename(lemp, ".h"); + fprintf(out,"#include \"%s\"\n", incName); lineno++; + free(incName); + } + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate #defines for all tokens */ + if( mhflag ){ + const char *prefix; + fprintf(out,"#if INTERFACE\n"); lineno++; + if( lemp->tokenprefix ) prefix = lemp->tokenprefix; + else prefix = ""; + for(i=1; interminal; i++){ + fprintf(out,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); + lineno++; + } + fprintf(out,"#endif\n"); lineno++; + } + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate the defines */ + fprintf(out,"#define YYCODETYPE %s\n", + minimum_size_type(0, lemp->nsymbol+1, &szCodeType)); lineno++; + fprintf(out,"#define YYNOCODE %d\n",lemp->nsymbol+1); lineno++; + fprintf(out,"#define YYACTIONTYPE %s\n", + minimum_size_type(0,lemp->nstate+lemp->nrule*2+5,&szActionType)); lineno++; + if( lemp->wildcard ){ + fprintf(out,"#define YYWILDCARD %d\n", + lemp->wildcard->index); lineno++; + } + print_stack_union(out,lemp,&lineno,mhflag); + fprintf(out, "#ifndef YYSTACKDEPTH\n"); lineno++; + if( lemp->stacksize ){ + fprintf(out,"#define YYSTACKDEPTH %s\n",lemp->stacksize); lineno++; + }else{ + fprintf(out,"#define YYSTACKDEPTH 100\n"); lineno++; + } + fprintf(out, "#endif\n"); lineno++; + if( mhflag ){ + fprintf(out,"#if INTERFACE\n"); lineno++; + } + name = lemp->name ? lemp->name : "Parse"; + if( lemp->arg && lemp->arg[0] ){ + i = lemonStrlen(lemp->arg); + while( i>=1 && ISSPACE(lemp->arg[i-1]) ) i--; + while( i>=1 && (ISALNUM(lemp->arg[i-1]) || lemp->arg[i-1]=='_') ) i--; + fprintf(out,"#define %sARG_SDECL %s;\n",name,lemp->arg); lineno++; + fprintf(out,"#define %sARG_PDECL ,%s\n",name,lemp->arg); lineno++; + fprintf(out,"#define %sARG_FETCH %s = yypParser->%s\n", + name,lemp->arg,&lemp->arg[i]); lineno++; + fprintf(out,"#define %sARG_STORE yypParser->%s = %s\n", + name,&lemp->arg[i],&lemp->arg[i]); lineno++; + }else{ + fprintf(out,"#define %sARG_SDECL\n",name); lineno++; + fprintf(out,"#define %sARG_PDECL\n",name); lineno++; + fprintf(out,"#define %sARG_FETCH\n",name); lineno++; + fprintf(out,"#define %sARG_STORE\n",name); lineno++; + } + if( mhflag ){ + fprintf(out,"#endif\n"); lineno++; + } + if( lemp->errsym->useCnt ){ + fprintf(out,"#define YYERRORSYMBOL %d\n",lemp->errsym->index); lineno++; + fprintf(out,"#define YYERRSYMDT yy%d\n",lemp->errsym->dtnum); lineno++; + } + if( lemp->has_fallback ){ + fprintf(out,"#define YYFALLBACK 1\n"); lineno++; + } + + /* Compute the action table, but do not output it yet. The action + ** table must be computed before generating the YYNSTATE macro because + ** we need to know how many states can be eliminated. + */ + ax = (struct axset *) calloc(lemp->nxstate*2, sizeof(ax[0])); + if( ax==0 ){ + fprintf(stderr,"malloc failed\n"); + exit(1); + } + for(i=0; inxstate; i++){ + stp = lemp->sorted[i]; + ax[i*2].stp = stp; + ax[i*2].isTkn = 1; + ax[i*2].nAction = stp->nTknAct; + ax[i*2+1].stp = stp; + ax[i*2+1].isTkn = 0; + ax[i*2+1].nAction = stp->nNtAct; + } + mxTknOfst = mnTknOfst = 0; + mxNtOfst = mnNtOfst = 0; + /* In an effort to minimize the action table size, use the heuristic + ** of placing the largest action sets first */ + for(i=0; inxstate*2; i++) ax[i].iOrder = i; + qsort(ax, lemp->nxstate*2, sizeof(ax[0]), axset_compare); + pActtab = acttab_alloc(); + for(i=0; inxstate*2 && ax[i].nAction>0; i++){ + stp = ax[i].stp; + if( ax[i].isTkn ){ + for(ap=stp->ap; ap; ap=ap->next){ + int action; + if( ap->sp->index>=lemp->nterminal ) continue; + action = compute_action(lemp, ap); + if( action<0 ) continue; + acttab_action(pActtab, ap->sp->index, action); + } + stp->iTknOfst = acttab_insert(pActtab); + if( stp->iTknOfstiTknOfst; + if( stp->iTknOfst>mxTknOfst ) mxTknOfst = stp->iTknOfst; + }else{ + for(ap=stp->ap; ap; ap=ap->next){ + int action; + if( ap->sp->indexnterminal ) continue; + if( ap->sp->index==lemp->nsymbol ) continue; + action = compute_action(lemp, ap); + if( action<0 ) continue; + acttab_action(pActtab, ap->sp->index, action); + } + stp->iNtOfst = acttab_insert(pActtab); + if( stp->iNtOfstiNtOfst; + if( stp->iNtOfst>mxNtOfst ) mxNtOfst = stp->iNtOfst; + } +#if 0 /* Uncomment for a trace of how the yy_action[] table fills out */ + { int jj, nn; + for(jj=nn=0; jjnAction; jj++){ + if( pActtab->aAction[jj].action<0 ) nn++; + } + printf("%4d: State %3d %s n: %2d size: %5d freespace: %d\n", + i, stp->statenum, ax[i].isTkn ? "Token" : "Var ", + ax[i].nAction, pActtab->nAction, nn); + } +#endif + } + free(ax); + + /* Mark rules that are actually used for reduce actions after all + ** optimizations have been applied + */ + for(rp=lemp->rule; rp; rp=rp->next) rp->doesReduce = LEMON_FALSE; + for(i=0; inxstate; i++){ + for(ap=lemp->sorted[i]->ap; ap; ap=ap->next){ + if( ap->type==REDUCE || ap->type==SHIFTREDUCE ){ + ap->x.rp->doesReduce = 1; + } + } + } + + /* Finish rendering the constants now that the action table has + ** been computed */ + fprintf(out,"#define YYNSTATE %d\n",lemp->nxstate); lineno++; + fprintf(out,"#define YYNRULE %d\n",lemp->nrule); lineno++; + fprintf(out,"#define YY_MAX_SHIFT %d\n",lemp->nxstate-1); lineno++; + fprintf(out,"#define YY_MIN_SHIFTREDUCE %d\n",lemp->nstate); lineno++; + i = lemp->nstate + lemp->nrule; + fprintf(out,"#define YY_MAX_SHIFTREDUCE %d\n", i-1); lineno++; + fprintf(out,"#define YY_MIN_REDUCE %d\n", i); lineno++; + i = lemp->nstate + lemp->nrule*2; + fprintf(out,"#define YY_MAX_REDUCE %d\n", i-1); lineno++; + fprintf(out,"#define YY_ERROR_ACTION %d\n", i); lineno++; + fprintf(out,"#define YY_ACCEPT_ACTION %d\n", i+1); lineno++; + fprintf(out,"#define YY_NO_ACTION %d\n", i+2); lineno++; + tplt_xfer(lemp->name,in,out,&lineno); + + /* Now output the action table and its associates: + ** + ** yy_action[] A single table containing all actions. + ** yy_lookahead[] A table containing the lookahead for each entry in + ** yy_action. Used to detect hash collisions. + ** yy_shift_ofst[] For each state, the offset into yy_action for + ** shifting terminals. + ** yy_reduce_ofst[] For each state, the offset into yy_action for + ** shifting non-terminals after a reduce. + ** yy_default[] Default action for each state. + */ + + /* Output the yy_action table */ + lemp->nactiontab = n = acttab_size(pActtab); + lemp->tablesize += n*szActionType; + fprintf(out,"#define YY_ACTTAB_COUNT (%d)\n", n); lineno++; + fprintf(out,"static const YYACTIONTYPE yy_action[] = {\n"); lineno++; + for(i=j=0; instate + lemp->nrule + 2; + if( j==0 ) fprintf(out," /* %5d */ ", i); + fprintf(out, " %4d,", action); + if( j==9 || i==n-1 ){ + fprintf(out, "\n"); lineno++; + j = 0; + }else{ + j++; + } + } + fprintf(out, "};\n"); lineno++; + + /* Output the yy_lookahead table */ + lemp->tablesize += n*szCodeType; + fprintf(out,"static const YYCODETYPE yy_lookahead[] = {\n"); lineno++; + for(i=j=0; insymbol; + if( j==0 ) fprintf(out," /* %5d */ ", i); + fprintf(out, " %4d,", la); + if( j==9 || i==n-1 ){ + fprintf(out, "\n"); lineno++; + j = 0; + }else{ + j++; + } + } + fprintf(out, "};\n"); lineno++; + + /* Output the yy_shift_ofst[] table */ + n = lemp->nxstate; + while( n>0 && lemp->sorted[n-1]->iTknOfst==NO_OFFSET ) n--; + fprintf(out, "#define YY_SHIFT_USE_DFLT (%d)\n", lemp->nactiontab); lineno++; + fprintf(out, "#define YY_SHIFT_COUNT (%d)\n", n-1); lineno++; + fprintf(out, "#define YY_SHIFT_MIN (%d)\n", mnTknOfst); lineno++; + fprintf(out, "#define YY_SHIFT_MAX (%d)\n", mxTknOfst); lineno++; + fprintf(out, "static const %s yy_shift_ofst[] = {\n", + minimum_size_type(mnTknOfst, lemp->nterminal+lemp->nactiontab, &sz)); + lineno++; + lemp->tablesize += n*sz; + for(i=j=0; isorted[i]; + ofst = stp->iTknOfst; + if( ofst==NO_OFFSET ) ofst = lemp->nactiontab; + if( j==0 ) fprintf(out," /* %5d */ ", i); + fprintf(out, " %4d,", ofst); + if( j==9 || i==n-1 ){ + fprintf(out, "\n"); lineno++; + j = 0; + }else{ + j++; + } + } + fprintf(out, "};\n"); lineno++; + + /* Output the yy_reduce_ofst[] table */ + fprintf(out, "#define YY_REDUCE_USE_DFLT (%d)\n", mnNtOfst-1); lineno++; + n = lemp->nxstate; + while( n>0 && lemp->sorted[n-1]->iNtOfst==NO_OFFSET ) n--; + fprintf(out, "#define YY_REDUCE_COUNT (%d)\n", n-1); lineno++; + fprintf(out, "#define YY_REDUCE_MIN (%d)\n", mnNtOfst); lineno++; + fprintf(out, "#define YY_REDUCE_MAX (%d)\n", mxNtOfst); lineno++; + fprintf(out, "static const %s yy_reduce_ofst[] = {\n", + minimum_size_type(mnNtOfst-1, mxNtOfst, &sz)); lineno++; + lemp->tablesize += n*sz; + for(i=j=0; isorted[i]; + ofst = stp->iNtOfst; + if( ofst==NO_OFFSET ) ofst = mnNtOfst - 1; + if( j==0 ) fprintf(out," /* %5d */ ", i); + fprintf(out, " %4d,", ofst); + if( j==9 || i==n-1 ){ + fprintf(out, "\n"); lineno++; + j = 0; + }else{ + j++; + } + } + fprintf(out, "};\n"); lineno++; + + /* Output the default action table */ + fprintf(out, "static const YYACTIONTYPE yy_default[] = {\n"); lineno++; + n = lemp->nxstate; + lemp->tablesize += n*szActionType; + for(i=j=0; isorted[i]; + if( j==0 ) fprintf(out," /* %5d */ ", i); + fprintf(out, " %4d,", stp->iDfltReduce+lemp->nstate+lemp->nrule); + if( j==9 || i==n-1 ){ + fprintf(out, "\n"); lineno++; + j = 0; + }else{ + j++; + } + } + fprintf(out, "};\n"); lineno++; + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate the table of fallback tokens. + */ + if( lemp->has_fallback ){ + int mx = lemp->nterminal - 1; + while( mx>0 && lemp->symbols[mx]->fallback==0 ){ mx--; } + lemp->tablesize += (mx+1)*szCodeType; + for(i=0; i<=mx; i++){ + struct symbol *p = lemp->symbols[i]; + if( p->fallback==0 ){ + fprintf(out, " 0, /* %10s => nothing */\n", p->name); + }else{ + fprintf(out, " %3d, /* %10s => %s */\n", p->fallback->index, + p->name, p->fallback->name); + } + lineno++; + } + } + tplt_xfer(lemp->name, in, out, &lineno); + + /* Generate a table containing the symbolic name of every symbol + */ + for(i=0; insymbol; i++){ + lemon_sprintf(line,"\"%s\",",lemp->symbols[i]->name); + fprintf(out," %-15s",line); + if( (i&3)==3 ){ fprintf(out,"\n"); lineno++; } + } + if( (i&3)!=0 ){ fprintf(out,"\n"); lineno++; } + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate a table containing a text string that describes every + ** rule in the rule set of the grammar. This information is used + ** when tracing REDUCE actions. + */ + for(i=0, rp=lemp->rule; rp; rp=rp->next, i++){ + assert( rp->iRule==i ); + fprintf(out," /* %3d */ \"", i); + writeRuleText(out, rp); + fprintf(out,"\",\n"); lineno++; + } + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate code which executes every time a symbol is popped from + ** the stack while processing errors or while destroying the parser. + ** (In other words, generate the %destructor actions) + */ + if( lemp->tokendest ){ + int once = 1; + for(i=0; insymbol; i++){ + struct symbol *sp = lemp->symbols[i]; + if( sp==0 || sp->type!=TERMINAL ) continue; + if( once ){ + fprintf(out, " /* TERMINAL Destructor */\n"); lineno++; + once = 0; + } + fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; + } + for(i=0; insymbol && lemp->symbols[i]->type!=TERMINAL; i++); + if( insymbol ){ + emit_destructor_code(out,lemp->symbols[i],lemp,&lineno); + fprintf(out," break;\n"); lineno++; + } + } + if( lemp->vardest ){ + struct symbol *dflt_sp = 0; + int once = 1; + for(i=0; insymbol; i++){ + struct symbol *sp = lemp->symbols[i]; + if( sp==0 || sp->type==TERMINAL || + sp->index<=0 || sp->destructor!=0 ) continue; + if( once ){ + fprintf(out, " /* Default NON-TERMINAL Destructor */\n"); lineno++; + once = 0; + } + fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; + dflt_sp = sp; + } + if( dflt_sp!=0 ){ + emit_destructor_code(out,dflt_sp,lemp,&lineno); + } + fprintf(out," break;\n"); lineno++; + } + for(i=0; insymbol; i++){ + struct symbol *sp = lemp->symbols[i]; + if( sp==0 || sp->type==TERMINAL || sp->destructor==0 ) continue; + if( sp->destLineno<0 ) continue; /* Already emitted */ + fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; + + /* Combine duplicate destructors into a single case */ + for(j=i+1; jnsymbol; j++){ + struct symbol *sp2 = lemp->symbols[j]; + if( sp2 && sp2->type!=TERMINAL && sp2->destructor + && sp2->dtnum==sp->dtnum + && strcmp(sp->destructor,sp2->destructor)==0 ){ + fprintf(out," case %d: /* %s */\n", + sp2->index, sp2->name); lineno++; + sp2->destLineno = -1; /* Avoid emitting this destructor again */ + } + } + + emit_destructor_code(out,lemp->symbols[i],lemp,&lineno); + fprintf(out," break;\n"); lineno++; + } + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate code which executes whenever the parser stack overflows */ + tplt_print(out,lemp,lemp->overflow,&lineno); + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate the table of rule information + ** + ** Note: This code depends on the fact that rules are number + ** sequentually beginning with 0. + */ + for(rp=lemp->rule; rp; rp=rp->next){ + fprintf(out," { %d, %d },\n",rp->lhs->index,-rp->nrhs); lineno++; + } + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate code which execution during each REDUCE action */ + i = 0; + for(rp=lemp->rule; rp; rp=rp->next){ + i += translate_code(lemp, rp); + } + if( i ){ + fprintf(out," YYMINORTYPE yylhsminor;\n"); lineno++; + } + /* First output rules other than the default: rule */ + for(rp=lemp->rule; rp; rp=rp->next){ + struct rule *rp2; /* Other rules with the same action */ + if( rp->codeEmitted ) continue; + if( rp->noCode ){ + /* No C code actions, so this will be part of the "default:" rule */ + continue; + } + fprintf(out," case %d: /* ", rp->iRule); + writeRuleText(out, rp); + fprintf(out, " */\n"); lineno++; + for(rp2=rp->next; rp2; rp2=rp2->next){ + if( rp2->code==rp->code && rp2->codePrefix==rp->codePrefix + && rp2->codeSuffix==rp->codeSuffix ){ + fprintf(out," case %d: /* ", rp2->iRule); + writeRuleText(out, rp2); + fprintf(out," */ yytestcase(yyruleno==%d);\n", rp2->iRule); lineno++; + rp2->codeEmitted = 1; + } + } + emit_code(out,rp,lemp,&lineno); + fprintf(out," break;\n"); lineno++; + rp->codeEmitted = 1; + } + /* Finally, output the default: rule. We choose as the default: all + ** empty actions. */ + fprintf(out," default:\n"); lineno++; + for(rp=lemp->rule; rp; rp=rp->next){ + if( rp->codeEmitted ) continue; + assert( rp->noCode ); + fprintf(out," /* (%d) ", rp->iRule); + writeRuleText(out, rp); + if( rp->doesReduce ){ + fprintf(out, " */ yytestcase(yyruleno==%d);\n", rp->iRule); lineno++; + }else{ + fprintf(out, " (OPTIMIZED OUT) */ assert(yyruleno!=%d);\n", + rp->iRule); lineno++; + } + } + fprintf(out," break;\n"); lineno++; + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate code which executes if a parse fails */ + tplt_print(out,lemp,lemp->failure,&lineno); + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate code which executes when a syntax error occurs */ + tplt_print(out,lemp,lemp->error,&lineno); + tplt_xfer(lemp->name,in,out,&lineno); + + /* Generate code which executes when the parser accepts its input */ + tplt_print(out,lemp,lemp->accept,&lineno); + tplt_xfer(lemp->name,in,out,&lineno); + + /* Append any addition code the user desires */ + tplt_print(out,lemp,lemp->extracode,&lineno); + + fclose(in); + fclose(out); + return; +} + +/* Generate a header file for the parser */ +void ReportHeader(struct lemon *lemp) +{ + FILE *out, *in; + const char *prefix; + char line[LINESIZE]; + char pattern[LINESIZE]; + int i; + + if( lemp->tokenprefix ) prefix = lemp->tokenprefix; + else prefix = ""; + in = file_open(lemp,".h","rb"); + if( in ){ + int nextChar; + for(i=1; interminal && fgets(line,LINESIZE,in); i++){ + lemon_sprintf(pattern,"#define %s%-30s %3d\n", + prefix,lemp->symbols[i]->name,i); + if( strcmp(line,pattern) ) break; + } + nextChar = fgetc(in); + fclose(in); + if( i==lemp->nterminal && nextChar==EOF ){ + /* No change in the file. Don't rewrite it. */ + return; + } + } + out = file_open(lemp,".h","wb"); + if( out ){ + for(i=1; interminal; i++){ + fprintf(out,"#define %s%-30s %3d\n",prefix,lemp->symbols[i]->name,i); + } + fclose(out); + } + return; +} + +/* Reduce the size of the action tables, if possible, by making use +** of defaults. +** +** In this version, we take the most frequent REDUCE action and make +** it the default. Except, there is no default if the wildcard token +** is a possible look-ahead. +*/ +void CompressTables(struct lemon *lemp) +{ + struct state *stp; + struct action *ap, *ap2, *nextap; + struct rule *rp, *rp2, *rbest; + int nbest, n; + int i; + int usesWildcard; + + for(i=0; instate; i++){ + stp = lemp->sorted[i]; + nbest = 0; + rbest = 0; + usesWildcard = 0; + + for(ap=stp->ap; ap; ap=ap->next){ + if( ap->type==SHIFT && ap->sp==lemp->wildcard ){ + usesWildcard = 1; + } + if( ap->type!=REDUCE ) continue; + rp = ap->x.rp; + if( rp->lhsStart ) continue; + if( rp==rbest ) continue; + n = 1; + for(ap2=ap->next; ap2; ap2=ap2->next){ + if( ap2->type!=REDUCE ) continue; + rp2 = ap2->x.rp; + if( rp2==rbest ) continue; + if( rp2==rp ) n++; + } + if( n>nbest ){ + nbest = n; + rbest = rp; + } + } + + /* Do not make a default if the number of rules to default + ** is not at least 1 or if the wildcard token is a possible + ** lookahead. + */ + if( nbest<1 || usesWildcard ) continue; + + + /* Combine matching REDUCE actions into a single default */ + for(ap=stp->ap; ap; ap=ap->next){ + if( ap->type==REDUCE && ap->x.rp==rbest ) break; + } + assert( ap ); + ap->sp = Symbol_new("{default}"); + for(ap=ap->next; ap; ap=ap->next){ + if( ap->type==REDUCE && ap->x.rp==rbest ) ap->type = NOT_USED; + } + stp->ap = Action_sort(stp->ap); + + for(ap=stp->ap; ap; ap=ap->next){ + if( ap->type==SHIFT ) break; + if( ap->type==REDUCE && ap->x.rp!=rbest ) break; + } + if( ap==0 ){ + stp->autoReduce = 1; + stp->pDfltReduce = rbest; + } + } + + /* Make a second pass over all states and actions. Convert + ** every action that is a SHIFT to an autoReduce state into + ** a SHIFTREDUCE action. + */ + for(i=0; instate; i++){ + stp = lemp->sorted[i]; + for(ap=stp->ap; ap; ap=ap->next){ + struct state *pNextState; + if( ap->type!=SHIFT ) continue; + pNextState = ap->x.stp; + if( pNextState->autoReduce && pNextState->pDfltReduce!=0 ){ + ap->type = SHIFTREDUCE; + ap->x.rp = pNextState->pDfltReduce; + } + } + } + + /* If a SHIFTREDUCE action specifies a rule that has a single RHS term + ** (meaning that the SHIFTREDUCE will land back in the state where it + ** started) and if there is no C-code associated with the reduce action, + ** then we can go ahead and convert the action to be the same as the + ** action for the RHS of the rule. + */ + for(i=0; instate; i++){ + stp = lemp->sorted[i]; + for(ap=stp->ap; ap; ap=nextap){ + nextap = ap->next; + if( ap->type!=SHIFTREDUCE ) continue; + rp = ap->x.rp; + if( rp->noCode==0 ) continue; + if( rp->nrhs!=1 ) continue; +#if 1 + /* Only apply this optimization to non-terminals. It would be OK to + ** apply it to terminal symbols too, but that makes the parser tables + ** larger. */ + if( ap->sp->indexnterminal ) continue; +#endif + /* If we reach this point, it means the optimization can be applied */ + nextap = ap; + for(ap2=stp->ap; ap2 && (ap2==ap || ap2->sp!=rp->lhs); ap2=ap2->next){} + assert( ap2!=0 ); + ap->spOpt = ap2->sp; + ap->type = ap2->type; + ap->x = ap2->x; + } + } +} + + +/* +** Compare two states for sorting purposes. The smaller state is the +** one with the most non-terminal actions. If they have the same number +** of non-terminal actions, then the smaller is the one with the most +** token actions. +*/ +static int stateResortCompare(const void *a, const void *b){ + const struct state *pA = *(const struct state**)a; + const struct state *pB = *(const struct state**)b; + int n; + + n = pB->nNtAct - pA->nNtAct; + if( n==0 ){ + n = pB->nTknAct - pA->nTknAct; + if( n==0 ){ + n = pB->statenum - pA->statenum; + } + } + assert( n!=0 ); + return n; +} + + +/* +** Renumber and resort states so that states with fewer choices +** occur at the end. Except, keep state 0 as the first state. +*/ +void ResortStates(struct lemon *lemp) +{ + int i; + struct state *stp; + struct action *ap; + + for(i=0; instate; i++){ + stp = lemp->sorted[i]; + stp->nTknAct = stp->nNtAct = 0; + stp->iDfltReduce = lemp->nrule; /* Init dflt action to "syntax error" */ + stp->iTknOfst = NO_OFFSET; + stp->iNtOfst = NO_OFFSET; + for(ap=stp->ap; ap; ap=ap->next){ + int iAction = compute_action(lemp,ap); + if( iAction>=0 ){ + if( ap->sp->indexnterminal ){ + stp->nTknAct++; + }else if( ap->sp->indexnsymbol ){ + stp->nNtAct++; + }else{ + assert( stp->autoReduce==0 || stp->pDfltReduce==ap->x.rp ); + stp->iDfltReduce = iAction - lemp->nstate - lemp->nrule; + } + } + } + } + qsort(&lemp->sorted[1], lemp->nstate-1, sizeof(lemp->sorted[0]), + stateResortCompare); + for(i=0; instate; i++){ + lemp->sorted[i]->statenum = i; + } + lemp->nxstate = lemp->nstate; + while( lemp->nxstate>1 && lemp->sorted[lemp->nxstate-1]->autoReduce ){ + lemp->nxstate--; + } +} + + +/***************** From the file "set.c" ************************************/ +/* +** Set manipulation routines for the LEMON parser generator. +*/ + +static int size = 0; + +/* Set the set size */ +void SetSize(int n) +{ + size = n+1; +} + +/* Allocate a new set */ +char *SetNew(void){ + char *s; + s = (char*)calloc( size, 1); + if( s==0 ){ + extern void memory_error(); + memory_error(); + } + return s; +} + +/* Deallocate a set */ +void SetFree(char *s) +{ + free(s); +} + +/* Add a new element to the set. Return TRUE if the element was added +** and FALSE if it was already there. */ +int SetAdd(char *s, int e) +{ + int rv; + assert( e>=0 && esize = 1024; + x1a->count = 0; + x1a->tbl = (x1node*)calloc(1024, sizeof(x1node) + sizeof(x1node*)); + if( x1a->tbl==0 ){ + free(x1a); + x1a = 0; + }else{ + int i; + x1a->ht = (x1node**)&(x1a->tbl[1024]); + for(i=0; i<1024; i++) x1a->ht[i] = 0; + } + } +} +/* Insert a new record into the array. Return TRUE if successful. +** Prior data with the same key is NOT overwritten */ +int Strsafe_insert(const char *data) +{ + x1node *np; + unsigned h; + unsigned ph; + + if( x1a==0 ) return 0; + ph = strhash(data); + h = ph & (x1a->size-1); + np = x1a->ht[h]; + while( np ){ + if( strcmp(np->data,data)==0 ){ + /* An existing entry with the same key is found. */ + /* Fail because overwrite is not allows. */ + return 0; + } + np = np->next; + } + if( x1a->count>=x1a->size ){ + /* Need to make the hash table bigger */ + int i,arrSize; + struct s_x1 array; + array.size = arrSize = x1a->size*2; + array.count = x1a->count; + array.tbl = (x1node*)calloc(arrSize, sizeof(x1node) + sizeof(x1node*)); + if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ + array.ht = (x1node**)&(array.tbl[arrSize]); + for(i=0; icount; i++){ + x1node *oldnp, *newnp; + oldnp = &(x1a->tbl[i]); + h = strhash(oldnp->data) & (arrSize-1); + newnp = &(array.tbl[i]); + if( array.ht[h] ) array.ht[h]->from = &(newnp->next); + newnp->next = array.ht[h]; + newnp->data = oldnp->data; + newnp->from = &(array.ht[h]); + array.ht[h] = newnp; + } + free(x1a->tbl); + *x1a = array; + } + /* Insert the new data */ + h = ph & (x1a->size-1); + np = &(x1a->tbl[x1a->count++]); + np->data = data; + if( x1a->ht[h] ) x1a->ht[h]->from = &(np->next); + np->next = x1a->ht[h]; + x1a->ht[h] = np; + np->from = &(x1a->ht[h]); + return 1; +} + +/* Return a pointer to data assigned to the given key. Return NULL +** if no such key. */ +const char *Strsafe_find(const char *key) +{ + unsigned h; + x1node *np; + + if( x1a==0 ) return 0; + h = strhash(key) & (x1a->size-1); + np = x1a->ht[h]; + while( np ){ + if( strcmp(np->data,key)==0 ) break; + np = np->next; + } + return np ? np->data : 0; +} + +/* Return a pointer to the (terminal or nonterminal) symbol "x". +** Create a new symbol if this is the first time "x" has been seen. +*/ +struct symbol *Symbol_new(const char *x) +{ + struct symbol *sp; + + sp = Symbol_find(x); + if( sp==0 ){ + sp = (struct symbol *)calloc(1, sizeof(struct symbol) ); + MemoryCheck(sp); + sp->name = Strsafe(x); + sp->type = ISUPPER(*x) ? TERMINAL : NONTERMINAL; + sp->rule = 0; + sp->fallback = 0; + sp->prec = -1; + sp->assoc = UNK; + sp->firstset = 0; + sp->lambda = LEMON_FALSE; + sp->destructor = 0; + sp->destLineno = 0; + sp->datatype = 0; + sp->useCnt = 0; + Symbol_insert(sp,sp->name); + } + sp->useCnt++; + return sp; +} + +/* Compare two symbols for sorting purposes. Return negative, +** zero, or positive if a is less then, equal to, or greater +** than b. +** +** Symbols that begin with upper case letters (terminals or tokens) +** must sort before symbols that begin with lower case letters +** (non-terminals). And MULTITERMINAL symbols (created using the +** %token_class directive) must sort at the very end. Other than +** that, the order does not matter. +** +** We find experimentally that leaving the symbols in their original +** order (the order they appeared in the grammar file) gives the +** smallest parser tables in SQLite. +*/ +int Symbolcmpp(const void *_a, const void *_b) +{ + const struct symbol *a = *(const struct symbol **) _a; + const struct symbol *b = *(const struct symbol **) _b; + int i1 = a->type==MULTITERMINAL ? 3 : a->name[0]>'Z' ? 2 : 1; + int i2 = b->type==MULTITERMINAL ? 3 : b->name[0]>'Z' ? 2 : 1; + return i1==i2 ? a->index - b->index : i1 - i2; +} + +/* There is one instance of the following structure for each +** associative array of type "x2". +*/ +struct s_x2 { + int size; /* The number of available slots. */ + /* Must be a power of 2 greater than or */ + /* equal to 1 */ + int count; /* Number of currently slots filled */ + struct s_x2node *tbl; /* The data stored here */ + struct s_x2node **ht; /* Hash table for lookups */ +}; + +/* There is one instance of this structure for every data element +** in an associative array of type "x2". +*/ +typedef struct s_x2node { + struct symbol *data; /* The data */ + const char *key; /* The key */ + struct s_x2node *next; /* Next entry with the same hash */ + struct s_x2node **from; /* Previous link */ +} x2node; + +/* There is only one instance of the array, which is the following */ +static struct s_x2 *x2a; + +/* Allocate a new associative array */ +void Symbol_init(void){ + if( x2a ) return; + x2a = (struct s_x2*)malloc( sizeof(struct s_x2) ); + if( x2a ){ + x2a->size = 128; + x2a->count = 0; + x2a->tbl = (x2node*)calloc(128, sizeof(x2node) + sizeof(x2node*)); + if( x2a->tbl==0 ){ + free(x2a); + x2a = 0; + }else{ + int i; + x2a->ht = (x2node**)&(x2a->tbl[128]); + for(i=0; i<128; i++) x2a->ht[i] = 0; + } + } +} +/* Insert a new record into the array. Return TRUE if successful. +** Prior data with the same key is NOT overwritten */ +int Symbol_insert(struct symbol *data, const char *key) +{ + x2node *np; + unsigned h; + unsigned ph; + + if( x2a==0 ) return 0; + ph = strhash(key); + h = ph & (x2a->size-1); + np = x2a->ht[h]; + while( np ){ + if( strcmp(np->key,key)==0 ){ + /* An existing entry with the same key is found. */ + /* Fail because overwrite is not allows. */ + return 0; + } + np = np->next; + } + if( x2a->count>=x2a->size ){ + /* Need to make the hash table bigger */ + int i,arrSize; + struct s_x2 array; + array.size = arrSize = x2a->size*2; + array.count = x2a->count; + array.tbl = (x2node*)calloc(arrSize, sizeof(x2node) + sizeof(x2node*)); + if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ + array.ht = (x2node**)&(array.tbl[arrSize]); + for(i=0; icount; i++){ + x2node *oldnp, *newnp; + oldnp = &(x2a->tbl[i]); + h = strhash(oldnp->key) & (arrSize-1); + newnp = &(array.tbl[i]); + if( array.ht[h] ) array.ht[h]->from = &(newnp->next); + newnp->next = array.ht[h]; + newnp->key = oldnp->key; + newnp->data = oldnp->data; + newnp->from = &(array.ht[h]); + array.ht[h] = newnp; + } + free(x2a->tbl); + *x2a = array; + } + /* Insert the new data */ + h = ph & (x2a->size-1); + np = &(x2a->tbl[x2a->count++]); + np->key = key; + np->data = data; + if( x2a->ht[h] ) x2a->ht[h]->from = &(np->next); + np->next = x2a->ht[h]; + x2a->ht[h] = np; + np->from = &(x2a->ht[h]); + return 1; +} + +/* Return a pointer to data assigned to the given key. Return NULL +** if no such key. */ +struct symbol *Symbol_find(const char *key) +{ + unsigned h; + x2node *np; + + if( x2a==0 ) return 0; + h = strhash(key) & (x2a->size-1); + np = x2a->ht[h]; + while( np ){ + if( strcmp(np->key,key)==0 ) break; + np = np->next; + } + return np ? np->data : 0; +} + +/* Return the n-th data. Return NULL if n is out of range. */ +struct symbol *Symbol_Nth(int n) +{ + struct symbol *data; + if( x2a && n>0 && n<=x2a->count ){ + data = x2a->tbl[n-1].data; + }else{ + data = 0; + } + return data; +} + +/* Return the size of the array */ +int Symbol_count() +{ + return x2a ? x2a->count : 0; +} + +/* Return an array of pointers to all data in the table. +** The array is obtained from malloc. Return NULL if memory allocation +** problems, or if the array is empty. */ +struct symbol **Symbol_arrayof() +{ + struct symbol **array; + int i,arrSize; + if( x2a==0 ) return 0; + arrSize = x2a->count; + array = (struct symbol **)calloc(arrSize, sizeof(struct symbol *)); + if( array ){ + for(i=0; itbl[i].data; + } + return array; +} + +/* Compare two configurations */ +int Configcmp(const char *_a,const char *_b) +{ + const struct config *a = (struct config *) _a; + const struct config *b = (struct config *) _b; + int x; + x = a->rp->index - b->rp->index; + if( x==0 ) x = a->dot - b->dot; + return x; +} + +/* Compare two states */ +PRIVATE int statecmp(struct config *a, struct config *b) +{ + int rc; + for(rc=0; rc==0 && a && b; a=a->bp, b=b->bp){ + rc = a->rp->index - b->rp->index; + if( rc==0 ) rc = a->dot - b->dot; + } + if( rc==0 ){ + if( a ) rc = 1; + if( b ) rc = -1; + } + return rc; +} + +/* Hash a state */ +PRIVATE unsigned statehash(struct config *a) +{ + unsigned h=0; + while( a ){ + h = h*571 + a->rp->index*37 + a->dot; + a = a->bp; + } + return h; +} + +/* Allocate a new state structure */ +struct state *State_new() +{ + struct state *newstate; + newstate = (struct state *)calloc(1, sizeof(struct state) ); + MemoryCheck(newstate); + return newstate; +} + +/* There is one instance of the following structure for each +** associative array of type "x3". +*/ +struct s_x3 { + int size; /* The number of available slots. */ + /* Must be a power of 2 greater than or */ + /* equal to 1 */ + int count; /* Number of currently slots filled */ + struct s_x3node *tbl; /* The data stored here */ + struct s_x3node **ht; /* Hash table for lookups */ +}; + +/* There is one instance of this structure for every data element +** in an associative array of type "x3". +*/ +typedef struct s_x3node { + struct state *data; /* The data */ + struct config *key; /* The key */ + struct s_x3node *next; /* Next entry with the same hash */ + struct s_x3node **from; /* Previous link */ +} x3node; + +/* There is only one instance of the array, which is the following */ +static struct s_x3 *x3a; + +/* Allocate a new associative array */ +void State_init(void){ + if( x3a ) return; + x3a = (struct s_x3*)malloc( sizeof(struct s_x3) ); + if( x3a ){ + x3a->size = 128; + x3a->count = 0; + x3a->tbl = (x3node*)calloc(128, sizeof(x3node) + sizeof(x3node*)); + if( x3a->tbl==0 ){ + free(x3a); + x3a = 0; + }else{ + int i; + x3a->ht = (x3node**)&(x3a->tbl[128]); + for(i=0; i<128; i++) x3a->ht[i] = 0; + } + } +} +/* Insert a new record into the array. Return TRUE if successful. +** Prior data with the same key is NOT overwritten */ +int State_insert(struct state *data, struct config *key) +{ + x3node *np; + unsigned h; + unsigned ph; + + if( x3a==0 ) return 0; + ph = statehash(key); + h = ph & (x3a->size-1); + np = x3a->ht[h]; + while( np ){ + if( statecmp(np->key,key)==0 ){ + /* An existing entry with the same key is found. */ + /* Fail because overwrite is not allows. */ + return 0; + } + np = np->next; + } + if( x3a->count>=x3a->size ){ + /* Need to make the hash table bigger */ + int i,arrSize; + struct s_x3 array; + array.size = arrSize = x3a->size*2; + array.count = x3a->count; + array.tbl = (x3node*)calloc(arrSize, sizeof(x3node) + sizeof(x3node*)); + if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ + array.ht = (x3node**)&(array.tbl[arrSize]); + for(i=0; icount; i++){ + x3node *oldnp, *newnp; + oldnp = &(x3a->tbl[i]); + h = statehash(oldnp->key) & (arrSize-1); + newnp = &(array.tbl[i]); + if( array.ht[h] ) array.ht[h]->from = &(newnp->next); + newnp->next = array.ht[h]; + newnp->key = oldnp->key; + newnp->data = oldnp->data; + newnp->from = &(array.ht[h]); + array.ht[h] = newnp; + } + free(x3a->tbl); + *x3a = array; + } + /* Insert the new data */ + h = ph & (x3a->size-1); + np = &(x3a->tbl[x3a->count++]); + np->key = key; + np->data = data; + if( x3a->ht[h] ) x3a->ht[h]->from = &(np->next); + np->next = x3a->ht[h]; + x3a->ht[h] = np; + np->from = &(x3a->ht[h]); + return 1; +} + +/* Return a pointer to data assigned to the given key. Return NULL +** if no such key. */ +struct state *State_find(struct config *key) +{ + unsigned h; + x3node *np; + + if( x3a==0 ) return 0; + h = statehash(key) & (x3a->size-1); + np = x3a->ht[h]; + while( np ){ + if( statecmp(np->key,key)==0 ) break; + np = np->next; + } + return np ? np->data : 0; +} + +/* Return an array of pointers to all data in the table. +** The array is obtained from malloc. Return NULL if memory allocation +** problems, or if the array is empty. */ +struct state **State_arrayof(void) +{ + struct state **array; + int i,arrSize; + if( x3a==0 ) return 0; + arrSize = x3a->count; + array = (struct state **)calloc(arrSize, sizeof(struct state *)); + if( array ){ + for(i=0; itbl[i].data; + } + return array; +} + +/* Hash a configuration */ +PRIVATE unsigned confighash(struct config *a) +{ + unsigned h=0; + h = h*571 + a->rp->index*37 + a->dot; + return h; +} + +/* There is one instance of the following structure for each +** associative array of type "x4". +*/ +struct s_x4 { + int size; /* The number of available slots. */ + /* Must be a power of 2 greater than or */ + /* equal to 1 */ + int count; /* Number of currently slots filled */ + struct s_x4node *tbl; /* The data stored here */ + struct s_x4node **ht; /* Hash table for lookups */ +}; + +/* There is one instance of this structure for every data element +** in an associative array of type "x4". +*/ +typedef struct s_x4node { + struct config *data; /* The data */ + struct s_x4node *next; /* Next entry with the same hash */ + struct s_x4node **from; /* Previous link */ +} x4node; + +/* There is only one instance of the array, which is the following */ +static struct s_x4 *x4a; + +/* Allocate a new associative array */ +void Configtable_init(void){ + if( x4a ) return; + x4a = (struct s_x4*)malloc( sizeof(struct s_x4) ); + if( x4a ){ + x4a->size = 64; + x4a->count = 0; + x4a->tbl = (x4node*)calloc(64, sizeof(x4node) + sizeof(x4node*)); + if( x4a->tbl==0 ){ + free(x4a); + x4a = 0; + }else{ + int i; + x4a->ht = (x4node**)&(x4a->tbl[64]); + for(i=0; i<64; i++) x4a->ht[i] = 0; + } + } +} +/* Insert a new record into the array. Return TRUE if successful. +** Prior data with the same key is NOT overwritten */ +int Configtable_insert(struct config *data) +{ + x4node *np; + unsigned h; + unsigned ph; + + if( x4a==0 ) return 0; + ph = confighash(data); + h = ph & (x4a->size-1); + np = x4a->ht[h]; + while( np ){ + if( Configcmp((const char *) np->data,(const char *) data)==0 ){ + /* An existing entry with the same key is found. */ + /* Fail because overwrite is not allows. */ + return 0; + } + np = np->next; + } + if( x4a->count>=x4a->size ){ + /* Need to make the hash table bigger */ + int i,arrSize; + struct s_x4 array; + array.size = arrSize = x4a->size*2; + array.count = x4a->count; + array.tbl = (x4node*)calloc(arrSize, sizeof(x4node) + sizeof(x4node*)); + if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ + array.ht = (x4node**)&(array.tbl[arrSize]); + for(i=0; icount; i++){ + x4node *oldnp, *newnp; + oldnp = &(x4a->tbl[i]); + h = confighash(oldnp->data) & (arrSize-1); + newnp = &(array.tbl[i]); + if( array.ht[h] ) array.ht[h]->from = &(newnp->next); + newnp->next = array.ht[h]; + newnp->data = oldnp->data; + newnp->from = &(array.ht[h]); + array.ht[h] = newnp; + } + free(x4a->tbl); + *x4a = array; + } + /* Insert the new data */ + h = ph & (x4a->size-1); + np = &(x4a->tbl[x4a->count++]); + np->data = data; + if( x4a->ht[h] ) x4a->ht[h]->from = &(np->next); + np->next = x4a->ht[h]; + x4a->ht[h] = np; + np->from = &(x4a->ht[h]); + return 1; +} + +/* Return a pointer to data assigned to the given key. Return NULL +** if no such key. */ +struct config *Configtable_find(struct config *key) +{ + int h; + x4node *np; + + if( x4a==0 ) return 0; + h = confighash(key) & (x4a->size-1); + np = x4a->ht[h]; + while( np ){ + if( Configcmp((const char *) np->data,(const char *) key)==0 ) break; + np = np->next; + } + return np ? np->data : 0; +} + +/* Remove all data from the table. Pass each data to the function "f" +** as it is removed. ("f" may be null to avoid this step.) */ +void Configtable_clear(int(*f)(struct config *)) +{ + int i; + if( x4a==0 || x4a->count==0 ) return; + if( f ) for(i=0; icount; i++) (*f)(x4a->tbl[i].data); + for(i=0; isize; i++) x4a->ht[i] = 0; + x4a->count = 0; + return; +} diff --git a/tools/lemon/lempar.c b/tools/lemon/lempar.c new file mode 100644 index 0000000..da81ddd --- /dev/null +++ b/tools/lemon/lempar.c @@ -0,0 +1,981 @@ +/* +** 2000-05-29 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** Driver template for the LEMON parser generator. +** +** The "lemon" program processes an LALR(1) input grammar file, then uses +** this template to construct a parser. The "lemon" program inserts text +** at each "%%" line. Also, any "P-a-r-s-e" identifer prefix (without the +** interstitial "-" characters) contained in this template is changed into +** the value of the %name directive from the grammar. Otherwise, the content +** of this template is copied straight through into the generate parser +** source file. +** +** The following is the concatenation of all %include directives from the +** input grammar file: +*/ +#include +/************ Begin %include sections from the grammar ************************/ +%% +/**************** End of %include directives **********************************/ +/* These constants specify the various numeric values for terminal symbols +** in a format understandable to "makeheaders". This section is blank unless +** "lemon" is run with the "-m" command-line option. +***************** Begin makeheaders token definitions *************************/ +%% +/**************** End makeheaders token definitions ***************************/ + +/* The next sections is a series of control #defines. +** various aspects of the generated parser. +** YYCODETYPE is the data type used to store the integer codes +** that represent terminal and non-terminal symbols. +** "unsigned char" is used if there are fewer than +** 256 symbols. Larger types otherwise. +** YYNOCODE is a number of type YYCODETYPE that is not used for +** any terminal or nonterminal symbol. +** YYFALLBACK If defined, this indicates that one or more tokens +** (also known as: "terminal symbols") have fall-back +** values which should be used if the original symbol +** would not parse. This permits keywords to sometimes +** be used as identifiers, for example. +** YYACTIONTYPE is the data type used for "action codes" - numbers +** that indicate what to do in response to the next +** token. +** ParseTOKENTYPE is the data type used for minor type for terminal +** symbols. Background: A "minor type" is a semantic +** value associated with a terminal or non-terminal +** symbols. For example, for an "ID" terminal symbol, +** the minor type might be the name of the identifier. +** Each non-terminal can have a different minor type. +** Terminal symbols all have the same minor type, though. +** This macros defines the minor type for terminal +** symbols. +** YYMINORTYPE is the data type used for all minor types. +** This is typically a union of many types, one of +** which is ParseTOKENTYPE. The entry in the union +** for terminal symbols is called "yy0". +** YYSTACKDEPTH is the maximum depth of the parser's stack. If +** zero the stack is dynamically sized using realloc() +** ParseARG_SDECL A static variable declaration for the %extra_argument +** ParseARG_PDECL A parameter declaration for the %extra_argument +** ParseARG_STORE Code to store %extra_argument into yypParser +** ParseARG_FETCH Code to extract %extra_argument from yypParser +** YYERRORSYMBOL is the code number of the error symbol. If not +** defined, then do no error processing. +** YYNSTATE the combined number of states. +** YYNRULE the number of rules in the grammar +** YY_MAX_SHIFT Maximum value for shift actions +** YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions +** YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions +** YY_MIN_REDUCE Minimum value for reduce actions +** YY_MAX_REDUCE Maximum value for reduce actions +** YY_ERROR_ACTION The yy_action[] code for syntax error +** YY_ACCEPT_ACTION The yy_action[] code for accept +** YY_NO_ACTION The yy_action[] code for no-op +*/ +#ifndef INTERFACE +# define INTERFACE 1 +#endif +/************* Begin control #defines *****************************************/ +%% +/************* End control #defines *******************************************/ + +/* Define the yytestcase() macro to be a no-op if is not already defined +** otherwise. +** +** Applications can choose to define yytestcase() in the %include section +** to a macro that can assist in verifying code coverage. For production +** code the yytestcase() macro should be turned off. But it is useful +** for testing. +*/ +#ifndef yytestcase +# define yytestcase(X) +#endif + + +/* Next are the tables used to determine what action to take based on the +** current state and lookahead token. These tables are used to implement +** functions that take a state number and lookahead value and return an +** action integer. +** +** Suppose the action integer is N. Then the action is determined as +** follows +** +** 0 <= N <= YY_MAX_SHIFT Shift N. That is, push the lookahead +** token onto the stack and goto state N. +** +** N between YY_MIN_SHIFTREDUCE Shift to an arbitrary state then +** and YY_MAX_SHIFTREDUCE reduce by rule N-YY_MIN_SHIFTREDUCE. +** +** N between YY_MIN_REDUCE Reduce by rule N-YY_MIN_REDUCE +** and YY_MAX_REDUCE +** +** N == YY_ERROR_ACTION A syntax error has occurred. +** +** N == YY_ACCEPT_ACTION The parser accepts its input. +** +** N == YY_NO_ACTION No such action. Denotes unused +** slots in the yy_action[] table. +** +** The action table is constructed as a single large table named yy_action[]. +** Given state S and lookahead X, the action is computed as either: +** +** (A) N = yy_action[ yy_shift_ofst[S] + X ] +** (B) N = yy_default[S] +** +** The (A) formula is preferred. The B formula is used instead if: +** (1) The yy_shift_ofst[S]+X value is out of range, or +** (2) yy_lookahead[yy_shift_ofst[S]+X] is not equal to X, or +** (3) yy_shift_ofst[S] equal YY_SHIFT_USE_DFLT. +** (Implementation note: YY_SHIFT_USE_DFLT is chosen so that +** YY_SHIFT_USE_DFLT+X will be out of range for all possible lookaheads X. +** Hence only tests (1) and (2) need to be evaluated.) +** +** The formulas above are for computing the action when the lookahead is +** a terminal symbol. If the lookahead is a non-terminal (as occurs after +** a reduce action) then the yy_reduce_ofst[] array is used in place of +** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of +** YY_SHIFT_USE_DFLT. +** +** The following are the tables generated in this section: +** +** yy_action[] A single table containing all actions. +** yy_lookahead[] A table containing the lookahead for each entry in +** yy_action. Used to detect hash collisions. +** yy_shift_ofst[] For each state, the offset into yy_action for +** shifting terminals. +** yy_reduce_ofst[] For each state, the offset into yy_action for +** shifting non-terminals after a reduce. +** yy_default[] Default action for each state. +** +*********** Begin parsing tables **********************************************/ +%% +/********** End of lemon-generated parsing tables *****************************/ + +/* The next table maps tokens (terminal symbols) into fallback tokens. +** If a construct like the following: +** +** %fallback ID X Y Z. +** +** appears in the grammar, then ID becomes a fallback token for X, Y, +** and Z. Whenever one of the tokens X, Y, or Z is input to the parser +** but it does not parse, the type of the token is changed to ID and +** the parse is retried before an error is thrown. +** +** This feature can be used, for example, to cause some keywords in a language +** to revert to identifiers if they keyword does not apply in the context where +** it appears. +*/ +#ifdef YYFALLBACK +static const YYCODETYPE yyFallback[] = { +%% +}; +#endif /* YYFALLBACK */ + +/* The following structure represents a single element of the +** parser's stack. Information stored includes: +** +** + The state number for the parser at this level of the stack. +** +** + The value of the token stored at this level of the stack. +** (In other words, the "major" token.) +** +** + The semantic value stored at this level of the stack. This is +** the information used by the action routines in the grammar. +** It is sometimes called the "minor" token. +** +** After the "shift" half of a SHIFTREDUCE action, the stateno field +** actually contains the reduce action for the second half of the +** SHIFTREDUCE. +*/ +struct yyStackEntry { + YYACTIONTYPE stateno; /* The state-number, or reduce action in SHIFTREDUCE */ + YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ +}; +typedef struct yyStackEntry yyStackEntry; + +/* The state of the parser is completely contained in an instance of +** the following structure */ +struct yyParser { + yyStackEntry *yytos; /* Pointer to top element of the stack */ +#ifdef YYTRACKMAXSTACKDEPTH + int yyhwm; /* High-water mark of the stack */ +#endif +#ifndef YYNOERRORRECOVERY + int yyerrcnt; /* Shifts left before out of the error */ +#endif + ParseARG_SDECL /* A place to hold %extra_argument */ +#if YYSTACKDEPTH<=0 + int yystksz; /* Current side of the stack */ + yyStackEntry *yystack; /* The parser's stack */ + yyStackEntry yystk0; /* First stack entry */ +#else + yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ + yyStackEntry *yystackEnd; /* Last entry in the stack */ +#endif +}; +typedef struct yyParser yyParser; + +#ifndef NDEBUG +#include +static FILE *yyTraceFILE = 0; +static char *yyTracePrompt = 0; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* +** Turn parser tracing on by giving a stream to which to write the trace +** and a prompt to preface each trace message. Tracing is turned off +** by making either argument NULL +** +** Inputs: +**
    +**
  • A FILE* to which trace output should be written. +** If NULL, then tracing is turned off. +**
  • A prefix string written at the beginning of every +** line of trace output. If NULL, then tracing is +** turned off. +**
+** +** Outputs: +** None. +*/ +void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ + yyTraceFILE = TraceFILE; + yyTracePrompt = zTracePrompt; + if( yyTraceFILE==0 ) yyTracePrompt = 0; + else if( yyTracePrompt==0 ) yyTraceFILE = 0; +} +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing shifts, the names of all terminals and nonterminals +** are required. The following table supplies these names */ +static const char *const yyTokenName[] = { +%% +}; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing reduce actions, the names of all rules are required. +*/ +static const char *const yyRuleName[] = { +%% +}; +#endif /* NDEBUG */ + + +#if YYSTACKDEPTH<=0 +/* +** Try to increase the size of the parser stack. Return the number +** of errors. Return 0 on success. +*/ +static int yyGrowStack(yyParser *p){ + int newSize; + int idx; + yyStackEntry *pNew; + + newSize = p->yystksz*2 + 100; + idx = p->yytos ? (int)(p->yytos - p->yystack) : 0; + if( p->yystack==&p->yystk0 ){ + pNew = malloc(newSize*sizeof(pNew[0])); + if( pNew ) pNew[0] = p->yystk0; + }else{ + pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); + } + if( pNew ){ + p->yystack = pNew; + p->yytos = &p->yystack[idx]; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sStack grows from %d to %d entries.\n", + yyTracePrompt, p->yystksz, newSize); + } +#endif + p->yystksz = newSize; + } + return pNew==0; +} +#endif + +/* Datatype of the argument to the memory allocated passed as the +** second argument to ParseAlloc() below. This can be changed by +** putting an appropriate #define in the %include section of the input +** grammar. +*/ +#ifndef YYMALLOCARGTYPE +# define YYMALLOCARGTYPE size_t +#endif + +/* Initialize a new parser that has already been allocated. +*/ +void ParseInit(void *yypParser){ + yyParser *pParser = (yyParser*)yypParser; +#ifdef YYTRACKMAXSTACKDEPTH + pParser->yyhwm = 0; +#endif +#if YYSTACKDEPTH<=0 + pParser->yytos = NULL; + pParser->yystack = NULL; + pParser->yystksz = 0; + if( yyGrowStack(pParser) ){ + pParser->yystack = &pParser->yystk0; + pParser->yystksz = 1; + } +#endif +#ifndef YYNOERRORRECOVERY + pParser->yyerrcnt = -1; +#endif + pParser->yytos = pParser->yystack; + pParser->yystack[0].stateno = 0; + pParser->yystack[0].major = 0; +#if YYSTACKDEPTH>0 + pParser->yystackEnd = &pParser->yystack[YYSTACKDEPTH-1]; +#endif +} + +#ifndef Parse_ENGINEALWAYSONSTACK +/* +** This function allocates a new parser. +** The only argument is a pointer to a function which works like +** malloc. +** +** Inputs: +** A pointer to the function used to allocate memory. +** +** Outputs: +** A pointer to a parser. This pointer is used in subsequent calls +** to Parse and ParseFree. +*/ +void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)){ + yyParser *pParser; + pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) ); + if( pParser ) ParseInit(pParser); + return pParser; +} +#endif /* Parse_ENGINEALWAYSONSTACK */ + + +/* The following function deletes the "minor type" or semantic value +** associated with a symbol. The symbol can be either a terminal +** or nonterminal. "yymajor" is the symbol code, and "yypminor" is +** a pointer to the value to be deleted. The code used to do the +** deletions is derived from the %destructor and/or %token_destructor +** directives of the input grammar. +*/ +static void yy_destructor( + yyParser *yypParser, /* The parser */ + YYCODETYPE yymajor, /* Type code for object to destroy */ + YYMINORTYPE *yypminor /* The object to be destroyed */ +){ + ParseARG_FETCH; + switch( yymajor ){ + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are *not* used + ** inside the C code. + */ +/********* Begin destructor definitions ***************************************/ +%% +/********* End destructor definitions *****************************************/ + default: break; /* If no destructor action specified: do nothing */ + } +} + +/* +** Pop the parser's stack once. +** +** If there is a destructor routine associated with the token which +** is popped from the stack, then call it. +*/ +static void yy_pop_parser_stack(yyParser *pParser){ + yyStackEntry *yytos; + assert( pParser->yytos!=0 ); + assert( pParser->yytos > pParser->yystack ); + yytos = pParser->yytos--; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sPopping %s\n", + yyTracePrompt, + yyTokenName[yytos->major]); + } +#endif + yy_destructor(pParser, yytos->major, &yytos->minor); +} + +/* +** Clear all secondary memory allocations from the parser +*/ +void ParseFinalize(void *p){ + yyParser *pParser = (yyParser*)p; + while( pParser->yytos>pParser->yystack ) yy_pop_parser_stack(pParser); +#if YYSTACKDEPTH<=0 + if( pParser->yystack!=&pParser->yystk0 ) free(pParser->yystack); +#endif +} + +#ifndef Parse_ENGINEALWAYSONSTACK +/* +** Deallocate and destroy a parser. Destructors are called for +** all stack elements before shutting the parser down. +** +** If the YYPARSEFREENEVERNULL macro exists (for example because it +** is defined in a %include section of the input grammar) then it is +** assumed that the input pointer is never NULL. +*/ +void ParseFree( + void *p, /* The parser to be deleted */ + void (*freeProc)(void*) /* Function used to reclaim memory */ +){ +#ifndef YYPARSEFREENEVERNULL + if( p==0 ) return; +#endif + ParseFinalize(p); + (*freeProc)(p); +} +#endif /* Parse_ENGINEALWAYSONSTACK */ + +/* +** Return the peak depth of the stack for a parser. +*/ +#ifdef YYTRACKMAXSTACKDEPTH +int ParseStackPeak(void *p){ + yyParser *pParser = (yyParser*)p; + return pParser->yyhwm; +} +#endif + +/* +** Find the appropriate action for a parser given the terminal +** look-ahead token iLookAhead. +*/ +static unsigned int yy_find_shift_action( + yyParser *pParser, /* The parser */ + YYCODETYPE iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->yytos->stateno; + + if( stateno>=YY_MIN_REDUCE ) return stateno; + assert( stateno <= YY_SHIFT_COUNT ); + do{ + i = yy_shift_ofst[stateno]; + assert( iLookAhead!=YYNOCODE ); + i += iLookAhead; + if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ +#ifdef YYFALLBACK + YYCODETYPE iFallback; /* Fallback token */ + if( iLookAhead %s\n", + yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); + } +#endif + assert( yyFallback[iFallback]==0 ); /* Fallback loop must terminate */ + iLookAhead = iFallback; + continue; + } +#endif +#ifdef YYWILDCARD + { + int j = i - iLookAhead + YYWILDCARD; + if( +#if YY_SHIFT_MIN+YYWILDCARD<0 + j>=0 && +#endif +#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT + j0 + ){ +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", + yyTracePrompt, yyTokenName[iLookAhead], + yyTokenName[YYWILDCARD]); + } +#endif /* NDEBUG */ + return yy_action[j]; + } + } +#endif /* YYWILDCARD */ + return yy_default[stateno]; + }else{ + return yy_action[i]; + } + }while(1); +} + +/* +** Find the appropriate action for a parser given the non-terminal +** look-ahead token iLookAhead. +*/ +static int yy_find_reduce_action( + int stateno, /* Current state number */ + YYCODETYPE iLookAhead /* The look-ahead token */ +){ + int i; +#ifdef YYERRORSYMBOL + if( stateno>YY_REDUCE_COUNT ){ + return yy_default[stateno]; + } +#else + assert( stateno<=YY_REDUCE_COUNT ); +#endif + i = yy_reduce_ofst[stateno]; + assert( i!=YY_REDUCE_USE_DFLT ); + assert( iLookAhead!=YYNOCODE ); + i += iLookAhead; +#ifdef YYERRORSYMBOL + if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ + return yy_default[stateno]; + } +#else + assert( i>=0 && iyytos>yypParser->yystack ) yy_pop_parser_stack(yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ +/******** Begin %stack_overflow code ******************************************/ +%% +/******** End %stack_overflow code ********************************************/ + ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ +} + +/* +** Print tracing information for a SHIFT action +*/ +#ifndef NDEBUG +static void yyTraceShift(yyParser *yypParser, int yyNewState){ + if( yyTraceFILE ){ + if( yyNewStateyytos->major], + yyNewState); + }else{ + fprintf(yyTraceFILE,"%sShift '%s'\n", + yyTracePrompt,yyTokenName[yypParser->yytos->major]); + } + } +} +#else +# define yyTraceShift(X,Y) +#endif + +/* +** Perform a shift action. +*/ +static void yy_shift( + yyParser *yypParser, /* The parser to be shifted */ + int yyNewState, /* The new state to shift in */ + int yyMajor, /* The major token to shift in */ + ParseTOKENTYPE yyMinor /* The minor token to shift in */ +){ + yyStackEntry *yytos; + yypParser->yytos++; +#ifdef YYTRACKMAXSTACKDEPTH + if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){ + yypParser->yyhwm++; + assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack) ); + } +#endif +#if YYSTACKDEPTH>0 + if( yypParser->yytos>yypParser->yystackEnd ){ + yypParser->yytos--; + yyStackOverflow(yypParser); + return; + } +#else + if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz] ){ + if( yyGrowStack(yypParser) ){ + yypParser->yytos--; + yyStackOverflow(yypParser); + return; + } + } +#endif + if( yyNewState > YY_MAX_SHIFT ){ + yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE; + } + yytos = yypParser->yytos; + yytos->stateno = (YYACTIONTYPE)yyNewState; + yytos->major = (YYCODETYPE)yyMajor; + yytos->minor.yy0 = yyMinor; + yyTraceShift(yypParser, yyNewState); +} + +/* The following table contains information about every rule that +** is used during the reduce. +*/ +static const struct { + YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + signed char nrhs; /* Negative of the number of RHS symbols in the rule */ +} yyRuleInfo[] = { +%% +}; + +static void yy_accept(yyParser*); /* Forward Declaration */ + +/* +** Perform a reduce action and the shift that must immediately +** follow the reduce. +** +** The yyLookahead and yyLookaheadToken parameters provide reduce actions +** access to the lookahead token (if any). The yyLookahead will be YYNOCODE +** if the lookahead token has already been consumed. As this procedure is +** only called from one place, optimizing compilers will in-line it, which +** means that the extra parameters have no performance impact. +*/ +static void yy_reduce( + yyParser *yypParser, /* The parser */ + unsigned int yyruleno, /* Number of the rule by which to reduce */ + int yyLookahead, /* Lookahead token, or YYNOCODE if none */ + ParseTOKENTYPE yyLookaheadToken /* Value of the lookahead token */ +){ + int yygoto; /* The next state */ + int yyact; /* The next action */ + yyStackEntry *yymsp; /* The top of the parser's stack */ + int yysize; /* Amount to pop the stack */ + ParseARG_FETCH; + yymsp = yypParser->yytos; +#ifndef NDEBUG + if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ + yysize = yyRuleInfo[yyruleno].nrhs; + fprintf(yyTraceFILE, "%sReduce [%s], go to state %d.\n", yyTracePrompt, + yyRuleName[yyruleno], yymsp[yysize].stateno); + } +#endif /* NDEBUG */ + + /* Check that the stack is large enough to grow by a single entry + ** if the RHS of the rule is empty. This ensures that there is room + ** enough on the stack to push the LHS value */ + if( yyRuleInfo[yyruleno].nrhs==0 ){ +#ifdef YYTRACKMAXSTACKDEPTH + if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){ + yypParser->yyhwm++; + assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack)); + } +#endif +#if YYSTACKDEPTH>0 + if( yypParser->yytos>=yypParser->yystackEnd ){ + yyStackOverflow(yypParser); + return; + } +#else + if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ + if( yyGrowStack(yypParser) ){ + yyStackOverflow(yypParser); + return; + } + yymsp = yypParser->yytos; + } +#endif + } + + switch( yyruleno ){ + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line + ** { ... } // User supplied code + ** #line + ** break; + */ +/********** Begin reduce actions **********************************************/ +%% +/********** End reduce actions ************************************************/ + }; + assert( yyrulenoYY_MAX_SHIFT && yyact<=YY_MAX_SHIFTREDUCE) ); + + /* It is not possible for a REDUCE to be followed by an error */ + assert( yyact!=YY_ERROR_ACTION ); + + if( yyact==YY_ACCEPT_ACTION ){ + yypParser->yytos += yysize; + yy_accept(yypParser); + }else{ + yymsp += yysize+1; + yypParser->yytos = yymsp; + yymsp->stateno = (YYACTIONTYPE)yyact; + yymsp->major = (YYCODETYPE)yygoto; + yyTraceShift(yypParser, yyact); + } +} + +/* +** The following code executes when the parse fails +*/ +#ifndef YYNOERRORRECOVERY +static void yy_parse_failed( + yyParser *yypParser /* The parser */ +){ + ParseARG_FETCH; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); + } +#endif + while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ +/************ Begin %parse_failure code ***************************************/ +%% +/************ End %parse_failure code *****************************************/ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} +#endif /* YYNOERRORRECOVERY */ + +/* +** The following code executes when a syntax error first occurs. +*/ +static void yy_syntax_error( + yyParser *yypParser, /* The parser */ + int yymajor, /* The major type of the error token */ + ParseTOKENTYPE yyminor /* The minor type of the error token */ +){ + ParseARG_FETCH; +#define TOKEN yyminor +/************ Begin %syntax_error code ****************************************/ +%% +/************ End %syntax_error code ******************************************/ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* +** The following is executed when the parser accepts +*/ +static void yy_accept( + yyParser *yypParser /* The parser */ +){ + ParseARG_FETCH; +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); + } +#endif +#ifndef YYNOERRORRECOVERY + yypParser->yyerrcnt = -1; +#endif + assert( yypParser->yytos==yypParser->yystack ); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ +/*********** Begin %parse_accept code *****************************************/ +%% +/*********** End %parse_accept code *******************************************/ + ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* The main parser program. +** The first argument is a pointer to a structure obtained from +** "ParseAlloc" which describes the current state of the parser. +** The second argument is the major token number. The third is +** the minor token. The fourth optional argument is whatever the +** user wants (and specified in the grammar) and is available for +** use by the action routines. +** +** Inputs: +**
    +**
  • A pointer to the parser (an opaque structure.) +**
  • The major token number. +**
  • The minor token number. +**
  • An option argument of a grammar-specified type. +**
+** +** Outputs: +** None. +*/ +void Parse( + void *yyp, /* The parser */ + int yymajor, /* The major token code number */ + ParseTOKENTYPE yyminor /* The value for the token */ + ParseARG_PDECL /* Optional %extra_argument parameter */ +){ + YYMINORTYPE yyminorunion; + unsigned int yyact; /* The parser action. */ +#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY) + int yyendofinput; /* True if we are at the end of input */ +#endif +#ifdef YYERRORSYMBOL + int yyerrorhit = 0; /* True if yymajor has invoked an error */ +#endif + yyParser *yypParser; /* The parser */ + + yypParser = (yyParser*)yyp; + assert( yypParser->yytos!=0 ); +#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY) + yyendofinput = (yymajor==0); +#endif + ParseARG_STORE; + +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sInput '%s'\n",yyTracePrompt,yyTokenName[yymajor]); + } +#endif + + do{ + yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); + if( yyact <= YY_MAX_SHIFTREDUCE ){ + yy_shift(yypParser,yyact,yymajor,yyminor); +#ifndef YYNOERRORRECOVERY + yypParser->yyerrcnt--; +#endif + yymajor = YYNOCODE; + }else if( yyact <= YY_MAX_REDUCE ){ + yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,yyminor); + }else{ + assert( yyact == YY_ERROR_ACTION ); + yyminorunion.yy0 = yyminor; +#ifdef YYERRORSYMBOL + int yymx; +#endif +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); + } +#endif +#ifdef YYERRORSYMBOL + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if( yypParser->yyerrcnt<0 ){ + yy_syntax_error(yypParser,yymajor,yyminor); + } + yymx = yypParser->yytos->major; + if( yymx==YYERRORSYMBOL || yyerrorhit ){ +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sDiscard input token %s\n", + yyTracePrompt,yyTokenName[yymajor]); + } +#endif + yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion); + yymajor = YYNOCODE; + }else{ + while( yypParser->yytos >= yypParser->yystack + && yymx != YYERRORSYMBOL + && (yyact = yy_find_reduce_action( + yypParser->yytos->stateno, + YYERRORSYMBOL)) >= YY_MIN_REDUCE + ){ + yy_pop_parser_stack(yypParser); + } + if( yypParser->yytos < yypParser->yystack || yymajor==0 ){ + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); + yy_parse_failed(yypParser); +#ifndef YYNOERRORRECOVERY + yypParser->yyerrcnt = -1; +#endif + yymajor = YYNOCODE; + }else if( yymx!=YYERRORSYMBOL ){ + yy_shift(yypParser,yyact,YYERRORSYMBOL,yyminor); + } + } + yypParser->yyerrcnt = 3; + yyerrorhit = 1; +#elif defined(YYNOERRORRECOVERY) + /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + yy_syntax_error(yypParser,yymajor, yyminor); + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); + yymajor = YYNOCODE; + +#else /* YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if( yypParser->yyerrcnt<=0 ){ + yy_syntax_error(yypParser,yymajor, yyminor); + } + yypParser->yyerrcnt = 3; + yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); + if( yyendofinput ){ + yy_parse_failed(yypParser); +#ifndef YYNOERRORRECOVERY + yypParser->yyerrcnt = -1; +#endif + } + yymajor = YYNOCODE; +#endif + } + }while( yymajor!=YYNOCODE && yypParser->yytos>yypParser->yystack ); +#ifndef NDEBUG + if( yyTraceFILE ){ + yyStackEntry *i; + char cDiv = '['; + fprintf(yyTraceFILE,"%sReturn. Stack=",yyTracePrompt); + for(i=&yypParser->yystack[1]; i<=yypParser->yytos; i++){ + fprintf(yyTraceFILE,"%c%s", cDiv, yyTokenName[i->major]); + cDiv = ' '; + } + fprintf(yyTraceFILE,"]\n"); + } +#endif + return; +}