| 219 | }; |
| 220 | |
| 221 | class GDScriptV1TokenizerBufferCompat : public GDScriptTokenizerV1Compat { |
| 222 | using Token = GDScriptDecomp::GlobalToken; |
| 223 | |
| 224 | enum { |
| 225 | |
| 226 | TOKEN_BYTE_MASK = 0x80, |
| 227 | TOKEN_BITS = 8, |
| 228 | TOKEN_MASK = (1 << TOKEN_BITS) - 1, |
| 229 | TOKEN_LINE_BITS = 24, |
| 230 | TOKEN_LINE_MASK = (1 << TOKEN_LINE_BITS) - 1, |
| 231 | }; |
| 232 | |
| 233 | Vector<StringName> identifiers; |
| 234 | Vector<Variant> constants; |
| 235 | RBMap<uint32_t, uint32_t> lines; |
| 236 | Vector<uint32_t> tokens; |
| 237 | Variant nil; |
| 238 | int token = 0; |
| 239 | int current_line = 0; |
| 240 | int current_indent = 0; |
| 241 | |
| 242 | String error_message; |
| 243 | |
| 244 | public: |
| 245 | Error set_code_buffer(const Vector<uint8_t> &p_buffer); |
| 246 | static Vector<uint8_t> parse_code_string(const String &p_code, const GDScriptDecomp *p_decomp, String &r_error_message); |
| 247 | virtual Token get_token(int p_offset = 0) const; |
| 248 | virtual StringName get_token_identifier(int p_offset = 0) const; |
| 249 | virtual int get_token_built_in_func(int p_offset = 0) const; |
| 250 | virtual Variant::Type get_token_type(int p_offset = 0) const; |
| 251 | virtual int get_token_line(int p_offset = 0) const; |
| 252 | virtual int get_token_column(int p_offset = 0) const; |
| 253 | virtual int get_token_line_indent(int p_offset = 0) const; |
| 254 | virtual int get_token_line_tab_indent(int p_offset = 0) const { return 0; } |
| 255 | virtual const Variant &get_token_constant(int p_offset = 0) const; |
| 256 | virtual String get_token_error(int p_offset = 0) const; |
| 257 | virtual void advance(int p_amount = 1); |
| 258 | #ifdef DEBUG_ENABLED |
| 259 | virtual const Vector<Pair<int, String>> &get_warning_skips() const { |
| 260 | static Vector<Pair<int, String>> v; |
| 261 | return v; |
| 262 | } |
| 263 | virtual const RBSet<String> &get_warning_global_skips() const { |
| 264 | static RBSet<String> s; |
| 265 | return s; |
| 266 | } |
| 267 | virtual bool is_ignoring_warnings() const { return true; } |
| 268 | #endif // DEBUG_ENABLED |
| 269 | GDScriptV1TokenizerBufferCompat() = delete; |
| 270 | explicit GDScriptV1TokenizerBufferCompat(const GDScriptDecomp *p_decomp); |
| 271 | }; |
no outgoing calls
no test coverage detected