Lines Matching defs:table
11 // Symbol table for parsing. Has these design characteristics:
13 // * Same symbol table can be used to compile many shaders, to preserve
18 // so that symbol table lookups are never ambiguous. This allows
19 // a simpler symbol table structure.
21 // * Pushing and popping of scope, so symbol table will really be a stack
26 // in the symbol table. The parser can substitute constants at parse
30 // are tracked in the intermediate representation, not the symbol table.
204 // returning true means symbol was added to the table
245 // The symbol table cannot be used until push() is called, but
247 // that the symbol table has not been preloaded with built-ins.
254 while (table.size() > 1)
259 // When the symbol table is initialized with the built-ins, there should
263 bool isEmpty() { return table.size() == 0; }
264 bool atBuiltInLevel() { return table.size() == 1; }
265 bool atGlobalLevel() { return table.size() <= 2; }
268 table.push_back(new TSymbolTableLevel);
274 delete table[currentLevel()];
275 table.pop_back();
282 return table[currentLevel()]->insert(symbol);
290 symbol = table[level]->find(name);
302 assert(table.size() >= 2);
303 return table[1];
306 table[0]->relateToOperator(name, op);
309 table[0]->relateToExtension(name, ext);
340 int currentLevel() const { return static_cast<int>(table.size()) - 1; }
342 std::vector<TSymbolTableLevel*> table;