* Use a symbol table to represent identifiers and attribute names
efficiently. The symbol table ensures that there is only one copy of each symbol, thus allowing symbols to be compared efficiently using a pointer equality test.
This commit is contained in:
		
							parent
							
								
									10e8b1fd15
								
							
						
					
					
						commit
						ac1e8f40d4
					
				
					 15 changed files with 228 additions and 101 deletions
				
			
		|  | @ -28,7 +28,7 @@ static Expr * parseStdin(EvalState & state) | |||
|     startNest(nest, lvlTalkative, format("parsing standard input")); | ||||
|     string s, s2; | ||||
|     while (getline(std::cin, s2)) s += s2 + "\n"; | ||||
|     return parseExprFromString(s, absPath(".")); | ||||
|     return parseExprFromString(state, s, absPath(".")); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  | @ -136,7 +136,7 @@ void run(Strings args) | |||
| 
 | ||||
|     foreach (Strings::iterator, i, files) { | ||||
|         Path path = absPath(*i); | ||||
|         Expr * e = parseExprFromFile(path); | ||||
|         Expr * e = parseExprFromFile(state, path); | ||||
|         processExpr(state, attrPaths, parseOnly, strict, autoArgs, | ||||
|             evalOnly, xmlOutput, e); | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue