@@ -157,7 +157,6 @@ bool ps_parse_actual_signature(ps_compiler *compiler, ps_ast_block *block, ps_as
157157 ps_symbol * argument = NULL ;
158158 ps_value * value = NULL ;
159159 ps_symbol * variable = NULL ;
160- ps_value result ;
161160 uint8_t parameter_count = formal_signature -> parameter_count ;
162161 uint8_t i = 0 ;
163162 ps_ast_node * args [16 ] = {0 };
@@ -250,20 +249,18 @@ bool ps_parse_actual_signature(ps_compiler *compiler, ps_ast_block *block, ps_as
250249
251250/**
252251 * Visit procedure or functions (with return type) declaration:
253- * PROCEDURE IDENTIFIER [ ( PARAMETER_DEFINITION [ , PARAMETER_DEFINITION ] ) ] ;
254- * FUNCTION IDENTIFIER [ ( PARAMETER_DEFINITION [ , PARAMETER_DEFINITION ] ) ] : TYPE_REFERENCE ;
252+ * PROCEDURE IDENTIFIER [ '(' PARAMETER_DEFINITION [ ',' PARAMETER_DEFINITION ] ')' ] ';'
253+ * FUNCTION IDENTIFIER [ '(' PARAMETER_DEFINITION [ ',' PARAMETER_DEFINITION ] ')' ] ':' TYPE_REFERENCE ';'
255254 * [ CONST ... TYPE ... VAR ... ]*
256- * BEGIN
257- * COMPOUND_STATEMENT [ ; ]
258- * END ;
259- * PARAMETER_DEFINITION = IDENTIFIER [ ':' TYPE_REFERENCE ] [ 'VAR' ] ;
260- * Done:
261- * - allow procedure parameters
262- * - allow by reference parameters
255+ * 'BEGIN'
256+ * COMPOUND_STATEMENT [ ';' ]
257+ * 'END' ';'
258+ * PARAMETER_DEFINITION = [ 'VAR' ] IDENTIFIER ':' TYPE_REFERENCE
263259 */
264- bool ps_parse_procedure_or_function_declaration (ps_compiler * compiler , ps_ast_block * block , ps_symbol_kind kind )
260+ bool ps_parse_procedure_or_function_declaration (ps_compiler * compiler , ps_ast_block * block , ps_ast_block * * executable ,
261+ ps_symbol_kind kind )
265262{
266- PARSE_BEGIN ("PROCEDURE_OR_FUNCTION " , "" );
263+ PARSE_BEGIN ("EXECUTABLE " , "PROCEDURE_OR_FUNCTION " );
267264
268265 ps_identifier identifier ;
269266 ps_symbol * executable_symbol = NULL ;
@@ -290,12 +287,12 @@ bool ps_parse_procedure_or_function_declaration(ps_compiler *compiler, ps_ast_bl
290287 executable_symbol = ps_compiler_find_symbol (compiler , block , identifier , true);
291288 if (executable_symbol != NULL )
292289 RETURN_ERROR (PS_ERROR_SYMBOL_EXISTS );
293- // Create new environment for the procedure/function
294- if (!ps_compiler_enter_environment (compiler , identifier ))
295- {
296- goto cleanup ;
297- }
298- has_environment = true;
290+ // // Create new environment for the procedure/function
291+ // if (!ps_compiler_enter_environment(compiler, identifier))
292+ // {
293+ // goto cleanup;
294+ // }
295+ // has_environment = true;
299296 READ_NEXT_TOKEN
300297
301298 // Initialize signature
0 commit comments