TEA GrammarIndex

translation-unit:
   external-declaration 
   translation-unit  external-declaration 

external-declaration:
   function-definition 

function-definition:
   declaration-specifier*  declarator  compound-statement 

declaration-specifier:
   type-specifier  declaration-specifier* 

type-specifier:
   void 
   char 
   int 
   string 

declarator:
   identifier 
   declarator  (  parameter-list  ) 

parameter-list:
   parameter-declaration 
   parameter-list  ,  parameter-declaration 

parameter-declaration:
   declaration-specifier  declarator 

compound-statement:
   statement-list* 

statement-list:
   statement-list  statement 

statement:
   asm-statement 
   selection-statement 
   jump-statement 
   labeled-statement 
   loop-statement 
   expression-statement 

labeled-statement:
   identifier  :  statement 
   case  constant  :  statement 
   default  :  statement 

selection-statement:
   if  (  expression  )  statement 
   if  (  expression  )  statement  else  statement 
   switch  (  expression  )  statement 

asm-statement:
   asm  {  asm-list*  } 

asm-list:
   opcode 
   labeled-statement 

jump-statement:
   return  expression*  ; 
   continue  ; 
   break  ; 
   goto  identifier  ; 

expression:
   assignment-expression 
   expression  ,  assigment-expression 

assignment-expression:
   conditional-expression 
   unary-expression  assignment-operator  assigment-expression 

assignment-operator:
   = 

conditional-expression:
   logical-OR-expression 
   logical-OR-expression  ?  expression  :  conditional-expression 

logical-OR-expression:
   logical-AND-expression 
   logical-OR-expression  ||  logical-AND-expression 

logical-AND-expression:
   inclusive-OR-expression 
   logical-AND-expression  &&  inclusive-OR-expression 

inclusive-OR-expression:
   exclusive-OR-expression 
   inclusive-OR-expression  |  exclusive-OR-expression 

exclusive-OR-expression:
   AND-expression 
   exclusive-OR-expression  ^  AND-expression 

AND-expression:
   equality-expression 
   AND-expression  &  equality-expression 

equality-expression:
   relational-expression 
   equality-expression  ==  relational-expression 
   equality-expression  !=  relational-expression 

relational-expression:
   shift-expression 
   relational-expression  <  shift-expression 
   relational-expression  >  shift-expression 
   relational-expression  <=  shift-expression 
   relational-expression  >=  shift-expression 

shift-expression:
   cast-expression 
   shift-expression  <<  cast-expression 
   shift-expression  >>  cast-expression 

additive-expression:
   multiplicative-expression 
   additive-expression  +  multiplicative-expression 
   additive-expression  -  multiplicative-expression 

multiplicative-expression:
   cast-expression 
   multiplicative-expression  *  cast-expression 
   multiplicative-expression  /  cast-expression 
   multiplicative-expression  %  cast-expression 

cast-expression:
   unary-expression 
   (  type-specifier  )  cast-expression 

unary-expression:
   postfix-expression 
   ++  unary-expression 
   --  unary-expression 
   unary-operator  cast-expression 

unary-operator:
   - 
   + 
   ! 
   ~ 

postfix-expression:
   primary-expression 
   postfix-expression  ++ 
   postfix-expression  -- 

primary-expression:
   identifier 
   constant 
   (  expression  ) 

loop-statement:
   while  (  expression  )  statement 
   do  statement  while  (  expression  )  ; 
   for  (  expression*  ;  expression*  ;  expression*  )  statement 


version: 1.0, build n.a.
© Copyright 1994-2012 Acroname, Inc., Boulder, Colorado.  All rights reserved.