* Add a Nix expression search path feature. Paths between angle
brackets, e.g.
    import <nixpkgs/pkgs/lib>
  are resolved by looking them up relative to the elements listed in
  the search path.  This allows us to get rid of hacks like
    import "${builtins.getEnv "NIXPKGS_ALL"}/pkgs/lib"
  The search path can be specified through the ‘-I’ command-line flag
  and through the colon-separated ‘NIX_PATH’ environment variable,
  e.g.,
    $ nix-build -I /etc/nixos ...
  If a file is not found in the search path, an error message is
  lazily thrown.
			
			
This commit is contained in:
		
							parent
							
								
									54945a2950
								
							
						
					
					
						commit
						1ecc97b6bd
					
				
					 24 changed files with 98 additions and 9 deletions
				
			
		|  | @ -81,6 +81,7 @@ static Expr * unescapeStr(SymbolTable & symbols, const char * s) | |||
| ID          [a-zA-Z\_][a-zA-Z0-9\_\']* | ||||
| INT         [0-9]+ | ||||
| PATH        [a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+ | ||||
| SPATH       \<[a-zA-Z0-9\.\_\-\+]+(\/[a-zA-Z0-9\.\_\-\+]+)*\> | ||||
| URI         [a-zA-Z][a-zA-Z0-9\+\-\.]*\:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\']+ | ||||
| 
 | ||||
| 
 | ||||
|  | @ -153,6 +154,7 @@ or          { return OR_KW; } | |||
| <IND_STRING>.    return yytext[0]; /* just in case: shouldn't be reached */ | ||||
| 
 | ||||
| {PATH}      { yylval->path = strdup(yytext); return PATH; } | ||||
| {SPATH}     { yylval->path = strdup(yytext); return SPATH; } | ||||
| {URI}       { yylval->uri = strdup(yytext); return URI; } | ||||
| 
 | ||||
| [ \t\r\n]+    /* eat up whitespace */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue