MCPcopy Create free account
hub / github.com/GDRETools/gdsdecomp / scan

Method scan

bytecode/gdscript_v1_tokenizer_compat.cpp:1447–1494  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1445}
1446
1447GDScriptTokenizerV1Compat::Token GDScriptTokenizerV1Compat::scan() {
1448 int line = get_token_line();
1449 const TokenType g_token = get_token();
1450 if (g_token == TokenType::G_TK_EOF) {
1451 Token data;
1452 data.type = TokenType::G_TK_EOF;
1453 data.start_line = line;
1454 data.start_column = get_token_column();
1455 return data;
1456 }
1457 StringName id;
1458 Variant c;
1459 String err;
1460 Token data;
1461 data.type = g_token;
1462 switch (g_token) {
1463 case TokenType::G_TK_IDENTIFIER: {
1464 data.literal = get_token_identifier();
1465 } break;
1466 case TokenType::G_TK_CONSTANT: {
1467 data.literal = get_token_constant();
1468 } break;
1469 case TokenType::G_TK_BUILT_IN_TYPE: {
1470 data.literal = get_token_constant();
1471 data.vtype = get_token_type();
1472 } break;
1473 case TokenType::G_TK_BUILT_IN_FUNC: {
1474 // built-in function already has correct value
1475 data.func = get_token_built_in_func();
1476 data.literal = decomp->get_function_name(data.func);
1477 } break;
1478 case TokenType::G_TK_NEWLINE: {
1479 current_indent = get_token_line_indent();
1480 } break;
1481 case TokenType::G_TK_ERROR: {
1482 data.literal = get_token_error();
1483 } break;
1484 default: {
1485 }
1486 };
1487 data.start_line = line;
1488 data.end_line = line;
1489 data.start_column = get_token_column();
1490 data.end_column = data.start_column;
1491 data.current_indent = current_indent;
1492 advance();
1493 return data;
1494}
1495
1496GDScriptV1TokenizerBufferCompat::GDScriptV1TokenizerBufferCompat(const GDScriptDecomp *p_decomp) :
1497 GDScriptTokenizerV1Compat(p_decomp) {

Callers

nothing calls this directly

Calls 2

get_token_lineFunction · 0.85
get_function_nameMethod · 0.45

Tested by

no test coverage detected