The unified diff between revisions [9a6e8df1..] and [4029749b..] is displayed below. It can also be downloaded as a raw diff.

This diff has been restricted to the following files: 'src/lsc/parser.y'

#
# old_revision [9a6e8df1d6b102f467702e274d53d90f9151e2c8]
# new_revision [4029749b9ead646e788e96bfd20e494a8bf99f61]
#
# patch "src/lsc/parser.y"
#  from [a3d3372576329c2dc4221d54c0a05238eb86dece]
#    to [2e92a218e99f7522cbd4a48694ec2202d575e0d2]
#
============================================================
--- src/lsc/parser.y	a3d3372576329c2dc4221d54c0a05238eb86dece
+++ src/lsc/parser.y	2e92a218e99f7522cbd4a48694ec2202d575e0d2
@@ -68,7 +68,7 @@ int main(int argc, char *argv[])
 
 %}
 
-%token TOKFUNCTION TOKFNDEFINT TOKFNDEFEXT TOKCONSTANT
+%token TOKFUNCTION TOKFNDEFINT TOKFNDEFINT_V TOKFNDEFEXT TOKCONSTANT
 %token TOKWHILE TOKIF TOKELSE TOKSWITCH TOKCASE TOKDEFAULT
 %token TOKBREAK TOKRETURN TOKEQ TOKNE TOKAND TOKOR STRING
 
@@ -86,6 +86,7 @@ int main(int argc, char *argv[])
 %type <Tast> fndefint
 %type <Tast> fndefext
 %type <Tast> statement
+%type <Tast> fndefint_v
 %type <Tast> assignment
 %type <Tast> expression
 %type <Tast> realconstant
@@ -142,6 +143,7 @@ fn_list_inner:
 fn_list_inner:
 	  fn_list_inner function	{ $$ = make_list($2, $1); }
 	| fn_list_inner fndefint	{ $$ = make_list($2, $1); }
+	| fn_list_inner fndefint_v	{ $$ = make_list($2, $1); }
 	| fn_list_inner fndefext	{ $$ = make_list($2, $1); }
 	| fn_list_inner constant	{ $$ = make_list($2, $1); }
 	| fn_list_inner realconstant	{ $$ = make_list($2, $1); }
@@ -158,6 +160,11 @@ fndefint:
 	{ $$ = make_fndefint($2, $3); }
 	;
 
+fndefint_v:
+	TOKFNDEFINT_V IDENTIFIER NUMBER ';'
+	{ $$ = make_fndefint_v($2, $3); }
+	;
+
 constant:
 	TOKCONSTANT IDENTIFIER NUMBER ';'
 	{ $$ = make_constant($2, $3); }
@@ -319,8 +326,11 @@ statement_return:
 	;
 
 statement_return:
+	TOKRETURN expression
+	{ $$ = make_return_statement($2); }
+	|
 	TOKRETURN
-	{ $$ = make_return_statement(); }
+	{ $$ = make_return_statement(NULL); }
 	;
 
 statement_break: