--- parser3/src/main/compile.y 2002/01/11 16:53:04 1.173.14.1 +++ parser3/src/main/compile.y 2002/01/31 15:04:38 1.176 @@ -5,7 +5,7 @@ Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: compile.y,v 1.173.14.1 2002/01/11 16:53:04 paf Exp $ + $Id: compile.y,v 1.176 2002/01/31 15:04:38 paf Exp $ */ /** @@ -311,7 +311,9 @@ construct_square: '[' any_constructor_co ; construct_round: '(' expr_value ')' { // stack: context, name - $$=$2; // stack: context, name, value + $$=N(POOL); + O($$, OP_PREPARE_TO_CONSTRUCT_EXPR); /* drop change execution state */ + P($$, $2); // stack: context, name, value O($$, OP_CONSTRUCT_EXPR); /* value=pop->as_expr_result; name=pop; context=pop; construct(context,name,value) */ } ; @@ -587,10 +589,16 @@ static int yylex(YYSTYPE *lvalp, void *p PC.col++; if(c=='@' && PC.col==0+1) { + if(PC.ls==LS_DEF_SPECIAL_BODY) { + // @SPECIAL + // ... + // @