--- parser3/src/main/compile_tools.h 2001/07/26 12:25:37 1.47 +++ parser3/src/main/compile_tools.h 2002/01/11 16:53:04 1.52.6.1 @@ -2,23 +2,21 @@ Parser: compiler support helper functions decls. Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) + Author: Alexander Petrosyan (http://paf.design.ru) - Author: Alexander Petrosyan (http://design.ru/paf) - - $Id: compile_tools.h,v 1.47 2001/07/26 12:25:37 parser Exp $ + $Id: compile_tools.h,v 1.52.6.1 2002/01/11 16:53:04 paf Exp $ */ #ifndef COMPILE_TOOLS #define COMPILE_TOOLS -#include "pa_config_includes.h" #include "pa_opcode.h" #include "pa_types.h" #include "pa_vstring.h" #include "pa_request.h" enum lexical_state { - LS_USER, + LS_USER, LS_NAME_SQUARE_PART, LS_COMMENT, LS_DEF_NAME, LS_DEF_PARAMS, @@ -27,10 +25,9 @@ enum lexical_state { LS_DEF_SPECIAL_BODY, LS_EXPRESSION_STRING_QUOTED, LS_EXPRESSION_STRING_APOSTROFED, - LS_EXPRESSION_VAR_NAME, - LS_VAR_NAME_SIMPLE, + LS_EXPRESSION_VAR_NAME_WITH_COLON, LS_EXPRESSION_VAR_NAME_WITHOUT_COLON, + LS_VAR_NAME_SIMPLE_WITH_COLON, LS_VAR_NAME_SIMPLE_WITHOUT_COLON, LS_VAR_NAME_CURLY, - LS_VAR_NAME_NO_COLON, LS_VAR_ROUND, LS_VAR_SQUARE, LS_VAR_CURLY, @@ -83,11 +80,6 @@ inline void O(Array/**/ *resu *result+=op.cast; } -/// Argument Eval_expression // append eval_expression to ops -inline void AE(Array/**/ *result, char *eval_expression) { - *result+=eval_expression; -} - /// aPpend 'code_array' to 'result' inline void P(Array/**/ *result, Array *code_array) { result->append_array(*code_array); @@ -96,6 +88,7 @@ inline void P(Array/**/ *resu inline void P(Array/**/ *result, Array *code_array, int offset) { result->append_array(*code_array, offset); } + /// aPpend 'vstring' to 'result' void PV(Array/**/ *result, VString *vstring); /// Parameter 'simple Code_Array' @@ -104,6 +97,8 @@ void PCA(Array/**/ *result, A void PEA(Array/**/ *result, Array/**/ *code_array); /// Construct 'simple Code_Array' void CCA(Array/**/ *result, Array/**/ *code_array); +/// aPpend Nested Code +void PNC(Array/**/ *result, Array/**/ *code_array); /** Value Literal // returns array with