diff options
Diffstat (limited to 'Source/cmCommandArgumentParser.y')
-rw-r--r-- | Source/cmCommandArgumentParser.y | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/cmCommandArgumentParser.y b/Source/cmCommandArgumentParser.y index 8f03a4b..055c6c3 100644 --- a/Source/cmCommandArgumentParser.y +++ b/Source/cmCommandArgumentParser.y @@ -91,6 +91,7 @@ static void cmCommandArgumentError(yyscan_t yyscanner, const char* message); /*-------------------------------------------------------------------------*/ /* Tokens */ +%token cal_ENVCURLY %token cal_NCURLY %token cal_DCURLY %token cal_DOLLAR "$" @@ -179,6 +180,12 @@ cal_SYMBOL } Variable: +cal_ENVCURLY EnvVarName cal_RCURLY +{ + $<str>$ = yyGetParser->ExpandSpecialVariable($<str>1,$<str>2); + //std::cerr << __LINE__ << " here: [" << $<str>1 << "] [" << $<str>2 << "] [" << $<str>3 << "]" << std::endl; +} +| cal_NCURLY MultipleIds cal_RCURLY { $<str>$ = yyGetParser->ExpandSpecialVariable($<str>1,$<str>2); @@ -196,6 +203,17 @@ cal_ATNAME $<str>$ = yyGetParser->ExpandVariableForAt($<str>1); } +EnvVarName: +MultipleIds +{ + $<str>$ = $<str>1; +} +| +cal_SYMBOL EnvVarName +{ + $<str>$ = $<str>1; +} + MultipleIds: { $<str>$ = 0; |