Skip to content

Commit

Permalink
Implement support for lambdas
Browse files Browse the repository at this point in the history
refs #8030
  • Loading branch information
gunnarbeutner committed Dec 13, 2014
1 parent 1275847 commit 54ab4dd
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion lib/config/config_parser.yy
Expand Up @@ -222,7 +222,7 @@ static void MakeRBinaryOp(Expression** result, Expression *left, Expression *rig
%right '!' '~'
%left '.' '(' '['
%right ';' ','
%right T_NEWLINE
%right T_NEWLINE T_FOLLOWS
%{

int yylex(YYSTYPE *lvalp, YYLTYPE *llocp, void *scanner);
Expand Down Expand Up @@ -869,6 +869,27 @@ rterm_without_indexer: T_STRING
$$ = new FunctionExpression("", *$3, $5, aexpr, DebugInfoRange(@1, @5));
delete $3;
}
| identifier T_FOLLOWS rterm
{
DictExpression *aexpr = dynamic_cast<DictExpression *>($3);
if (aexpr)
aexpr->MakeInline();

std::vector<String> args;
args.push_back($1);
free($1);

$$ = new FunctionExpression("", args, new std::map<String, Expression *>(), $3, DebugInfoRange(@1, @3));
}
| T_BINARY_OR identifier_items T_BINARY_OR T_FOLLOWS rterm
{
DictExpression *aexpr = dynamic_cast<DictExpression *>($5);
if (aexpr)
aexpr->MakeInline();

$$ = new FunctionExpression("", *$2, new std::map<String, Expression *>(), $5, DebugInfoRange(@1, @5));
delete $2;
}
;

target_type_specifier: /* empty */
Expand Down

0 comments on commit 54ab4dd

Please sign in to comment.