main() { symtabADT table; scannerADT scanner; string line, name, value; table = NewSymbolTable(); scanner = NewScanner(); SetScannerSpaceOption(scanner, IgnoreSpaces); while (TRUE) { printf("-> "); line = GetLine(); if (StringEqual(line, "quit")) break; SetScannerString(scanner, line); name = ReadToken(scanner); if (MoreTokensExist(scanner)) { if (!StringEqual(ReadToken(scanner), "=")) { Error("Missing equal sign in assignment"); } value = ReadToken(scanner); if (MoreTokensExist(scanner)) { Error("Statement contains additional data"); } Enter(table, name, value); } else { value = Lookup(table, name); if (value == UNDEFINED) { printf("'%s' is undefined.\n", name); } else { printf("%s\n", value); } } } FreeSymbolTable(table); }
cmdScannerADT NewCommandScanner(void) { cmdScannerADT cs; cs = New(cmdScannerADT); cs->cmdTable = NewSymbolTable(); cs->scanner = NewScanner(); SetScannerSpaceOption(cs->scanner, IgnoreSpaces); cs->data = NULL; cs->quit = FALSE; return (cs); }
static dataBlockT NewDataBlock(void) { dataBlockT db; int i; db = New(dataBlockT); db->scanner = NewScanner(); SetScannerSpaceOption(db->scanner, IgnoreSpaces); for (i = 0; i < 26; i++) { db->variables[i] = NULL; } return (db); }
//--------------------------------------------------------------------------- void Table::Init() { numErrors = 0; SetConsistencyInfo(CONSISTENCY_DONTKNOW); Scanners = new LinkedList(); dScanner = NULL; dScanner = NewScanner(TRUE, FALSE); Handle=NULL; IdxHandle=NULL; FieldsRecord=NULL; HasNewHdr=FALSE; IndexList=NULL; doCRC = FALSE; GLocateUpToDate = FALSE; }
main() { scannerADT myScanner; string token; int nTokens; myScanner = NewScanner(); printf("Enter input line: "); SetScannerString(myScanner, GetLine()); nTokens = 0; while (MoreTokensExist(myScanner)) { token = ReadToken(myScanner); nTokens++; printf("%2d: \"%s\"\n", nTokens, token); } FreeScanner(myScanner); }
void Preprocessor_expr_init(void) { if (!expr_init) init_precedence(); if (!scan) scan = NewScanner(); }
void scanner_init() { scan = NewScanner(); Scanner_idstart(scan,"%"); scan_init = 1; scanner_ccode = NewStringEmpty(); }
//--------------------------------------------------------------------------- Scanner *Table::NewScanner(BOOL orderIntegrity) { return NewScanner(FALSE, orderIntegrity); }