Add a symbol __curPos that expands to the current source location
I.e. an attribute set { file = <string>; line = <int>; column = <int>; }.
			
			
This commit is contained in:
		
							parent
							
								
									90b5e69284
								
							
						
					
					
						commit
						fc33fd86b7
					
				
					 7 changed files with 43 additions and 2 deletions
				
			
		|  | @ -142,6 +142,9 @@ EvalState::EvalState() | |||
|     , sOutputs(symbols.create("outputs")) | ||||
|     , sOutputName(symbols.create("outputName")) | ||||
|     , sIgnoreNulls(symbols.create("__ignoreNulls")) | ||||
|     , sFile(symbols.create("file")) | ||||
|     , sLine(symbols.create("line")) | ||||
|     , sColumn(symbols.create("column")) | ||||
|     , repair(false) | ||||
|     , baseEnv(allocEnv(128)) | ||||
|     , staticBaseEnv(false, 0) | ||||
|  | @ -1039,6 +1042,16 @@ void ExprConcatStrings::eval(EvalState & state, Env & env, Value & v) | |||
| } | ||||
| 
 | ||||
| 
 | ||||
| void ExprPos::eval(EvalState & state, Env & env, Value & v) | ||||
| { | ||||
|     state.mkAttrs(v, 3); | ||||
|     mkString(*state.allocAttr(v, state.sFile), pos.file); | ||||
|     mkInt(*state.allocAttr(v, state.sLine), pos.line); | ||||
|     mkInt(*state.allocAttr(v, state.sColumn), pos.column); | ||||
|     v.attrs->sort(); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| void EvalState::strictForceValue(Value & v) | ||||
| { | ||||
|     forceValue(v); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue