|
|
| version 1.70, 2003/11/20 16:32:12 | version 1.76, 2005/08/09 08:14:51 |
|---|---|
| Line 1 | Line 1 |
| /** @file | /** @file |
| Parser: compiler support helper functions decls. | Parser: compiler support helper functions decls. |
| Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) | Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com) |
| Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru) | Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru) |
| */ | */ |
| #ifndef COMPILE_TOOLS | #ifndef COMPILE_TOOLS |
| #define COMPILE_TOOLS | #define COMPILE_TOOLS |
| static const char* IDENT_COMPILE_TOOLS_H="$Date$"; | static const char * const IDENT_COMPILE_TOOLS_H="$Date$"; |
| #include "pa_opcode.h" | #include "pa_opcode.h" |
| #include "pa_types.h" | #include "pa_types.h" |
| Line 43 enum lexical_state { | Line 43 enum lexical_state { |
| }; | }; |
| struct Pos { | struct Pos { |
| uint line; | int line; |
| uint col; | int col; |
| //Pos(uint aline, uint acol): line(aline), col(acol) {} | Pos(int aline, int acol): line(aline), col(acol) {} |
| Pos(): line(0), col(0) {} | Pos(): line(0), col(0) {} |
| void clear() { line=col=0; } | void clear() { line=col=0; } |
| Line 80 public: | Line 80 public: |
| int brackets_nestages[MAX_LEXICAL_STATES]; ///< brackets nestage on each state | int brackets_nestages[MAX_LEXICAL_STATES]; ///< brackets nestage on each state |
| bool in_call_value; | bool in_call_value; |
| bool explicit_result; | |
| //@} | //@} |
| /// output: filled input 'methods' and 'error' if any | /// output: filled input 'methods' and 'error' if any |
| Line 88 public: | Line 89 public: |
| Parse_control(Request& arequest, | Parse_control(Request& arequest, |
| VStateless_class* aclass, | VStateless_class* aclass, |
| const char* asource, const String* amain_alias, | const char* asource, const String* amain_alias, |
| uint afile_no): | uint afile_no, |
| int line_no_offset): | |
| main_alias(amain_alias), | main_alias(amain_alias), |
| last_line_end_col(0), | last_line_end_col(0), |
| Line 98 public: | Line 100 public: |
| cclass(aclass), // until changed with @CLASS would consider operators loading | cclass(aclass), // until changed with @CLASS would consider operators loading |
| source(asource), | source(asource), |
| file_no(afile_no), | file_no(afile_no), |
| pos(line_no_offset, 0), | |
| // initialize state | // initialize state |
| trim_bof(true), | trim_bof(true), |
| pending_state(0), | pending_state(0), |
| ls(LS_USER), | ls(LS_USER), |
| ls_sp(0), | ls_sp(0), |
| in_call_value(false) {} | in_call_value(false), |
| explicit_result(false) {} | |
| void pos_next_line() { | void pos_next_line() { |
| pos.line++; | pos.line++; |
| Line 187 inline void change_string_literal_to_wri | Line 191 inline void change_string_literal_to_wri |
| } | } |
| void change_string_literal_to_double_literal(ArrayOperation& literal_string_array); | void maybe_change_string_literal_to_double_literal(ArrayOperation& literal_string_array); |
| void change_string_literal_value(ArrayOperation& literal_string_array, const String& new_value); | void change_string_literal_value(ArrayOperation& literal_string_array, const String& new_value); |