Funnier delimiters for functions.

This commit is contained in:
Stefano Sanfilippo 2014-11-23 22:18:56 +01:00
parent a25e1697cd
commit 0de580d0e9
3 changed files with 4 additions and 10 deletions

View File

@ -138,12 +138,6 @@ CHAR [a-zA-Z_]
"," { "," {
return COMMA; return COMMA;
} }
"{" {
return LCURL;
}
"}" {
return RCURL;
}
"brematurata la supercazzola" { "brematurata la supercazzola" {
return FUNCALL; return FUNCALL;
} }

View File

@ -20,7 +20,7 @@ extern void emit(const char *, ...);
%token ASSERT_BEGIN ASSERT_END %token ASSERT_BEGIN ASSERT_END
%token LOOP_BEGIN LOOP_CONDITION %token LOOP_BEGIN LOOP_CONDITION
%token BRANCH_CONDITION BRANCH_BEGIN BRANCH_ELSE BRANCH_END CASE_END %token BRANCH_CONDITION BRANCH_BEGIN BRANCH_ELSE BRANCH_END CASE_END
%token COLON COMMA LCURL RCURL DOT %token COLON COMMA DOT
%token FUNDECL PARAMS FUNCALL %token FUNDECL PARAMS FUNCALL
%token ABORT %token ABORT
%token ID NUMBER FLOAT %token ID NUMBER FLOAT
@ -49,7 +49,7 @@ fun_decls:
/* epsilon */ | fun_decls fun_decl /* epsilon */ | fun_decls fun_decl
; ;
fun_decl: fun_decl:
FUNDECL ID args LCURL statements RCURL FUNDECL ID args DOT statements CASE_END
; ;
args: args:
/* epsilon */ | PARAMS arglist /* epsilon */ | PARAMS arglist

View File

@ -156,9 +156,9 @@ Che corrisponde a (pseudocodice):
*** Funzioni *** *** Funzioni ***
Una funzione può essere definita con la sintassi: Una funzione può essere definita con la sintassi:
blinda la supercazzola <nome> [con <parametro>[, <parametro>]] { blinda la supercazzola <nome> [con <parametro>[, <parametro>]].
<codice> <codice>
} O scherziamo?
che definisce la funzione <nome> con i parametri in ingresso specificati che definisce la funzione <nome> con i parametri in ingresso specificati