#include "lclintMacros.nf"#include "llbasic.h"#include "llgrammar2.h"#include "lclscan.h"#include "scanline.h"#include "lclscanline.h"#include "lcltokentable.h"Go to the source code of this file.
Functions | |
| ltokenCode | yllex (void) |
| ltoken | LCLScanNextToken (void) |
| void | LCLScanFreshToken ( ltoken tok) |
| tsource* | LCLScanSource (void) |
| void | LCLScanInit (void) |
| void | LCLScanReset (tsource * s) |
| void | LCLScanCleanup (void) |
Variables | |
| bool | g_inTypeDef = FALSE |
|
|
Definition at line 208 of file lclscan.c. 00209 {
00210 }
|
|
|
Definition at line 175 of file lclscan.c. Referenced by LCLScanLine(). 00176 {
00177 if (lastToken < MAXLINE)
00178 {
00179 TokenList[lastToken++] = tok;
00180 }
00181 else
00182 {
00183 llbugexitlit ("LCLScanFreshToken: out of range");
00184 }
00185 }
|
|
|
Definition at line 194 of file lclscan.c. 00195 {
00196 }
|
|
|
Definition at line 118 of file lclscan.c. Referenced by LCLProcessInitFileReset(). 00119 {
00120 ltoken ret;
00121
00122 if (nextToken < lastToken)
00123 {
00124 ret = TokenList[nextToken++];
00125 }
00126 else
00127 {
00128 lastToken = 0;
00129 lineNumber++;
00130 line = tsource_nextLine (scanFile);
00131
00132 if (line != (char *) 0)
00133 {
00134
00135 LCLScanLine (line);
00136 nextToken = 0;
00137 ret = LCLScanNextToken ();
00138 return ret;
00139 }
00140 else
00141 {
00142 ret = LCLScanEofToken ();
00143 }
00144 }
00145
00146
00147 return ret;
00148 }
|
|
|
Definition at line 199 of file lclscan.c. 00200 {
00201 scanFile = s;
00202 lastToken = 0;
00203 nextToken = lastToken + 1;
00204 lineNumber = 0;
00205 }
|
|
|
Definition at line 187 of file lclscan.c. Referenced by processImport(), sort_import(), and symtable_import(). 00188 {
00189 return scanFile;
00190 }
|
|
|
Definition at line 71 of file lclscan.c. 00073 {
00074 lsymbol tokenSym;
00075
00076 if (restore)
00077 {
00078 yllval = restoretok;
00079 restore = FALSE;
00080 }
00081 else
00082 {
00083 yllval.ltok = ltoken_copy (LCLScanNextToken ());
00084 }
00085
00086 tokenSym = ltoken_getText (yllval.ltok);
00087
00088 if (ltoken_getCode (yllval.ltok) == simpleId)
00089 {
00090 if (g_inTypeDef)
00091 {
00092 ltoken_setCode (yllval.ltok, LLT_TYPEDEF_NAME);
00093 LCLUpdateToken (LLT_TYPEDEF_NAME, tokenSym,
00094 ltoken_isStateDefined (yllval.ltok));
00095 }
00096 else
00097 {
00098 /* or if it is already declared as a type, so
00099 typedef int foo; typedef foo bar; works*/
00100 if (symtable_exists (g_symtab, tokenSym))
00101 {
00102 if (typeInfo_exists (symtable_typeInfo (g_symtab, tokenSym)))
00103 {
00104 ltoken_setCode (yllval.ltok, LLT_TYPEDEF_NAME);
00105 LCLUpdateToken (LLT_TYPEDEF_NAME, tokenSym,
00106 ltoken_isStateDefined (yllval.ltok));
00107 }
00108 }
00109 }
00110 }
00111
00112 return (ltoken_getCode (yllval.ltok));
00113 }
|
|
|
Definition at line 167 of file llgrammar.tab.c. |
1.2.3 written by Dimitri van Heesch,
© 1997-2000