{
$$ = newNode (CALL,$1,$3) ; $$->left->funcName = 1;
}
- | postfix_expr '.' identifier
+ | postfix_expr '.' { ignoreTypedefType = 1; } identifier
{
- $3 = newSymbol($3->name,NestLevel);
- $3->implicit = 1;
- $$ = newNode(PTR_OP,newNode('&',$1,NULL),newAst_VALUE(symbolVal($3)));
-/* $$ = newNode('.',$1,newAst(EX_VALUE,symbolVal($3))) ; */
+ ignoreTypedefType = 0;
+ $4 = newSymbol($4->name,NestLevel);
+ $4->implicit = 1;
+ $$ = newNode(PTR_OP,newNode('&',$1,NULL),newAst_VALUE(symbolVal($4)));
+/* $$ = newNode('.',$1,newAst(EX_VALUE,symbolVal($4))) ; */
}
- | postfix_expr PTR_OP identifier
+ | postfix_expr PTR_OP { ignoreTypedefType = 1; } identifier
{
- $3 = newSymbol($3->name,NestLevel);
- $3->implicit = 1;
- $$ = newNode(PTR_OP,$1,newAst_VALUE(symbolVal($3)));
+ ignoreTypedefType = 0;
+ $4 = newSymbol($4->name,NestLevel);
+ $4->implicit = 1;
+ $$ = newNode(PTR_OP,$1,newAst_VALUE(symbolVal($4)));
}
| postfix_expr INC_OP
{ $$ = newNode(INC_OP,$1,NULL);}
assignment_expr
: conditional_expr
- | unary_expr assignment_operator assignment_expr
+ | cast_expr assignment_operator assignment_expr
{
switch ($2) {
$$ = newLink(SPECIFIER) ;
SPEC_NOUN($$) = V_SBIT;
SPEC_SCLS($$) = S_SBIT;
+ SPEC_BLEN($$) = 1;
+ SPEC_BSTR($$) = 0;
ignoreTypedefType = 1;
}
| sfr_attributes
labeled_statement
// : identifier ':' statement { $$ = createLabel($1,$3); }
- : identifier ':' { $$ = createLabel($1,NULL); }
- | CASE constant_expr ':' statement
+ : identifier ':' { $$ = createLabel($1,NULL);
+ $1->isitmp = 0; }
+ | CASE constant_expr ':'
{
if (STACK_EMPTY(swStk))
- $$ = createCase(NULL,$2,$4);
+ $$ = createCase(NULL,$2,NULL);
else
- $$ = createCase(STACK_PEEK(swStk),$2,$4);
+ $$ = createCase(STACK_PEEK(swStk),$2,NULL);
}
- | DEFAULT { $<asts>$ = newNode(DEFAULT,NULL,NULL); } ':' statement
+ | DEFAULT { $<asts>$ = newNode(DEFAULT,NULL,NULL); } ':'
{
if (STACK_EMPTY(swStk))
- $$ = createDefault(NULL,$<asts>2,$4);
+ $$ = createDefault(NULL,$<asts>2,NULL);
else
- $$ = createDefault(STACK_PEEK(swStk),$<asts>2,$4);
+ $$ = createDefault(STACK_PEEK(swStk),$<asts>2,NULL);
}
;