added function parser rules
This commit is contained in:
parent
f8c888216a
commit
08943e3e6e
|
@ -63,7 +63,8 @@
|
|||
%left OpBitand OpBitor OpBitxor OpBitnot
|
||||
|
||||
%%
|
||||
program: statementlist;
|
||||
program: statementlist
|
||||
| fundef;
|
||||
|
||||
expr: ValFloat
|
||||
| ValInt
|
||||
|
@ -76,10 +77,35 @@ exprlist: expr ',' exprlist
|
|||
| expr
|
||||
| ;
|
||||
|
||||
paramlist: paramlist '(' exprlist ')'
|
||||
argumentlist: argumentlist '(' exprlist ')'
|
||||
| ;
|
||||
|
||||
funcall: Ident paramlist { DEBUG("Function call"); };
|
||||
fundef: KeyFun Ident paramlist '{' statementlist'}' { DEBUG("Function");};
|
||||
|
||||
paramlist: paramlist '(' params ')'
|
||||
| paramlist '(' ')'
|
||||
| '(' params ')'
|
||||
| '(' ')';
|
||||
|
||||
params: IOqualifyier paramdecl ',' params
|
||||
| IOqualifyier paramdecl;
|
||||
|
||||
IOqualifyier: KeyIn
|
||||
| KeyOut
|
||||
| KeyIn KeyOut
|
||||
| KeyOut KeyIn
|
||||
| ;
|
||||
|
||||
paramdecl: type ':' Ident { DEBUG("Param-Declaration"); };
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
funcall: Ident argumentlist { DEBUG("Function call"); };
|
||||
|
||||
assign: Ident '=' expr { DEBUG("Assignment"); };
|
||||
|
||||
|
@ -102,8 +128,7 @@ branch: branchif branchelseifs
|
|||
| branchif branchelseifs branchelse;
|
||||
|
||||
identlist: Ident ',' identlist
|
||||
| Ident
|
||||
| ;
|
||||
| Ident;
|
||||
|
||||
decl: type ':' identlist { DEBUG("Declaration"); };
|
||||
|
||||
|
|
Loading…
Reference in New Issue