summaryrefslogtreecommitdiffstats
path: root/Source/cmCommandArgumentParser.y
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCommandArgumentParser.y')
-rw-r--r--Source/cmCommandArgumentParser.y18
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;