@galacean/engine-shaderlab 1.4.0-alpha.3 → 1.4.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +197 -124
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/browser.verbose.js +238 -157
- package/dist/browser.verbose.js.map +1 -1
- package/dist/browser.verbose.min.js +1 -1
- package/dist/browser.verbose.min.js.map +1 -1
- package/dist/main.js +197 -124
- package/dist/main.js.map +1 -1
- package/dist/main.verbose.js +238 -157
- package/dist/main.verbose.js.map +1 -1
- package/dist/module.js +197 -124
- package/dist/module.js.map +1 -1
- package/dist/module.verbose.js +238 -157
- package/dist/module.verbose.js.map +1 -1
- package/package.json +4 -4
- package/types/common/types.d.ts +1 -0
- package/types/lexer/Utils.d.ts +1 -1
- package/types/parser/AST.d.ts +9 -0
- package/types/parser/GrammarSymbol.d.ts +97 -95
- package/types/parser/builtin/functions.d.ts +4 -5
package/dist/main.js
CHANGED
|
@@ -544,7 +544,7 @@ var ETokenType = /*#__PURE__*/ function(ETokenType) {
|
|
|
544
544
|
/** , */ ETokenType[ETokenType["COMMA"] = 1032] = "COMMA";
|
|
545
545
|
ETokenType[ETokenType["COLON"] = 1033] = "COLON";
|
|
546
546
|
/** = */ ETokenType[ETokenType["EQUAL"] = 1034] = "EQUAL";
|
|
547
|
-
ETokenType[ETokenType["SEMICOLON"] = 1035] = "SEMICOLON";
|
|
547
|
+
/** ; */ ETokenType[ETokenType["SEMICOLON"] = 1035] = "SEMICOLON";
|
|
548
548
|
/** ! */ ETokenType[ETokenType["BANG"] = 1036] = "BANG";
|
|
549
549
|
/** \- */ ETokenType[ETokenType["DASH"] = 1037] = "DASH";
|
|
550
550
|
/** ~ */ ETokenType[ETokenType["TILDE"] = 1038] = "TILDE";
|
|
@@ -641,7 +641,8 @@ var LexerUtils = /*#__PURE__*/ function() {
|
|
|
641
641
|
};
|
|
642
642
|
LexerUtils.isSpace = function isSpace(charCode) {
|
|
643
643
|
return charCode === 9 || // Tab
|
|
644
|
-
charCode === 10 || // Line break
|
|
644
|
+
charCode === 10 || // Line break - /n
|
|
645
|
+
charCode === 13 || // Carriage return -/r
|
|
645
646
|
charCode === 32 // Space
|
|
646
647
|
;
|
|
647
648
|
};
|
|
@@ -714,7 +715,11 @@ var BaseScanner = /*#__PURE__*/ function() {
|
|
|
714
715
|
var start = this.getCurPosition();
|
|
715
716
|
this.advance(2);
|
|
716
717
|
// single line comments
|
|
717
|
-
|
|
718
|
+
var curChar = this.getCurChar();
|
|
719
|
+
while(curChar !== "\n" && curChar !== "\r" && !this.isEnd()){
|
|
720
|
+
this._advance();
|
|
721
|
+
curChar = this.getCurChar();
|
|
722
|
+
}
|
|
718
723
|
this.skipCommentsAndSpace();
|
|
719
724
|
return ShaderLab.createRange(start, this.getCurPosition());
|
|
720
725
|
} else if (this.peek(2) === "/*") {
|
|
@@ -824,7 +829,8 @@ var BaseScanner = /*#__PURE__*/ function() {
|
|
|
824
829
|
BaseScanner._spaceCharsWithBreak = [
|
|
825
830
|
" ",
|
|
826
831
|
"\t",
|
|
827
|
-
"\n"
|
|
832
|
+
"\n",
|
|
833
|
+
"\r"
|
|
828
834
|
];
|
|
829
835
|
BaseScanner._spaceChars = [
|
|
830
836
|
" ",
|
|
@@ -1416,101 +1422,103 @@ var NoneTerminal = /*#__PURE__*/ function(NoneTerminal) {
|
|
|
1416
1422
|
// glsl
|
|
1417
1423
|
NoneTerminal[NoneTerminal["global_declaration"] = 2002] = "global_declaration";
|
|
1418
1424
|
NoneTerminal[NoneTerminal["variable_declaration"] = 2003] = "variable_declaration";
|
|
1419
|
-
NoneTerminal[NoneTerminal["
|
|
1420
|
-
NoneTerminal[NoneTerminal["
|
|
1421
|
-
NoneTerminal[NoneTerminal["
|
|
1422
|
-
NoneTerminal[NoneTerminal["
|
|
1423
|
-
NoneTerminal[NoneTerminal["
|
|
1424
|
-
NoneTerminal[NoneTerminal["
|
|
1425
|
-
NoneTerminal[NoneTerminal["
|
|
1426
|
-
NoneTerminal[NoneTerminal["
|
|
1427
|
-
NoneTerminal[NoneTerminal["
|
|
1428
|
-
NoneTerminal[NoneTerminal["
|
|
1429
|
-
NoneTerminal[NoneTerminal["
|
|
1430
|
-
NoneTerminal[NoneTerminal["
|
|
1431
|
-
NoneTerminal[NoneTerminal["
|
|
1432
|
-
NoneTerminal[NoneTerminal["
|
|
1433
|
-
NoneTerminal[NoneTerminal["
|
|
1434
|
-
NoneTerminal[NoneTerminal["
|
|
1435
|
-
NoneTerminal[NoneTerminal["
|
|
1436
|
-
NoneTerminal[NoneTerminal["
|
|
1437
|
-
NoneTerminal[NoneTerminal["
|
|
1438
|
-
NoneTerminal[NoneTerminal["
|
|
1439
|
-
NoneTerminal[NoneTerminal["
|
|
1440
|
-
NoneTerminal[NoneTerminal["
|
|
1441
|
-
NoneTerminal[NoneTerminal["
|
|
1442
|
-
NoneTerminal[NoneTerminal["
|
|
1443
|
-
NoneTerminal[NoneTerminal["
|
|
1444
|
-
NoneTerminal[NoneTerminal["
|
|
1445
|
-
NoneTerminal[NoneTerminal["
|
|
1446
|
-
NoneTerminal[NoneTerminal["
|
|
1447
|
-
NoneTerminal[NoneTerminal["
|
|
1448
|
-
NoneTerminal[NoneTerminal["
|
|
1449
|
-
NoneTerminal[NoneTerminal["
|
|
1450
|
-
NoneTerminal[NoneTerminal["
|
|
1451
|
-
NoneTerminal[NoneTerminal["
|
|
1452
|
-
NoneTerminal[NoneTerminal["
|
|
1453
|
-
NoneTerminal[NoneTerminal["
|
|
1454
|
-
NoneTerminal[NoneTerminal["
|
|
1455
|
-
NoneTerminal[NoneTerminal["
|
|
1456
|
-
NoneTerminal[NoneTerminal["
|
|
1457
|
-
NoneTerminal[NoneTerminal["
|
|
1458
|
-
NoneTerminal[NoneTerminal["
|
|
1459
|
-
NoneTerminal[NoneTerminal["
|
|
1460
|
-
NoneTerminal[NoneTerminal["
|
|
1461
|
-
NoneTerminal[NoneTerminal["
|
|
1462
|
-
NoneTerminal[NoneTerminal["
|
|
1463
|
-
NoneTerminal[NoneTerminal["
|
|
1464
|
-
NoneTerminal[NoneTerminal["
|
|
1465
|
-
NoneTerminal[NoneTerminal["
|
|
1466
|
-
NoneTerminal[NoneTerminal["
|
|
1467
|
-
NoneTerminal[NoneTerminal["
|
|
1468
|
-
NoneTerminal[NoneTerminal["
|
|
1469
|
-
NoneTerminal[NoneTerminal["
|
|
1470
|
-
NoneTerminal[NoneTerminal["
|
|
1471
|
-
NoneTerminal[NoneTerminal["
|
|
1472
|
-
NoneTerminal[NoneTerminal["
|
|
1473
|
-
NoneTerminal[NoneTerminal["
|
|
1474
|
-
NoneTerminal[NoneTerminal["
|
|
1475
|
-
NoneTerminal[NoneTerminal["
|
|
1476
|
-
NoneTerminal[NoneTerminal["
|
|
1477
|
-
NoneTerminal[NoneTerminal["
|
|
1478
|
-
NoneTerminal[NoneTerminal["
|
|
1479
|
-
NoneTerminal[NoneTerminal["
|
|
1480
|
-
NoneTerminal[NoneTerminal["
|
|
1481
|
-
NoneTerminal[NoneTerminal["
|
|
1482
|
-
NoneTerminal[NoneTerminal["
|
|
1483
|
-
NoneTerminal[NoneTerminal["
|
|
1484
|
-
NoneTerminal[NoneTerminal["
|
|
1485
|
-
NoneTerminal[NoneTerminal["
|
|
1486
|
-
NoneTerminal[NoneTerminal["
|
|
1487
|
-
NoneTerminal[NoneTerminal["
|
|
1488
|
-
NoneTerminal[NoneTerminal["
|
|
1489
|
-
NoneTerminal[NoneTerminal["
|
|
1490
|
-
NoneTerminal[NoneTerminal["
|
|
1491
|
-
NoneTerminal[NoneTerminal["
|
|
1492
|
-
NoneTerminal[NoneTerminal["
|
|
1493
|
-
NoneTerminal[NoneTerminal["
|
|
1494
|
-
NoneTerminal[NoneTerminal["
|
|
1495
|
-
NoneTerminal[NoneTerminal["
|
|
1496
|
-
NoneTerminal[NoneTerminal["
|
|
1497
|
-
NoneTerminal[NoneTerminal["
|
|
1498
|
-
NoneTerminal[NoneTerminal["
|
|
1499
|
-
NoneTerminal[NoneTerminal["
|
|
1500
|
-
NoneTerminal[NoneTerminal["
|
|
1501
|
-
NoneTerminal[NoneTerminal["
|
|
1502
|
-
NoneTerminal[NoneTerminal["
|
|
1503
|
-
NoneTerminal[NoneTerminal["
|
|
1504
|
-
NoneTerminal[NoneTerminal["
|
|
1505
|
-
NoneTerminal[NoneTerminal["
|
|
1506
|
-
NoneTerminal[NoneTerminal["
|
|
1507
|
-
NoneTerminal[NoneTerminal["
|
|
1508
|
-
NoneTerminal[NoneTerminal["
|
|
1509
|
-
NoneTerminal[NoneTerminal["
|
|
1510
|
-
NoneTerminal[NoneTerminal["
|
|
1511
|
-
NoneTerminal[NoneTerminal["
|
|
1512
|
-
NoneTerminal[NoneTerminal["
|
|
1513
|
-
NoneTerminal[NoneTerminal["
|
|
1425
|
+
NoneTerminal[NoneTerminal["variable_declaration_list"] = 2004] = "variable_declaration_list";
|
|
1426
|
+
NoneTerminal[NoneTerminal["variable_declaration_statement"] = 2005] = "variable_declaration_statement";
|
|
1427
|
+
NoneTerminal[NoneTerminal["array_specifier_list"] = 2006] = "array_specifier_list";
|
|
1428
|
+
NoneTerminal[NoneTerminal["array_specifier"] = 2007] = "array_specifier";
|
|
1429
|
+
NoneTerminal[NoneTerminal["ext_builtin_type_specifier_nonarray"] = 2008] = "ext_builtin_type_specifier_nonarray";
|
|
1430
|
+
NoneTerminal[NoneTerminal["precision_specifier"] = 2009] = "precision_specifier";
|
|
1431
|
+
NoneTerminal[NoneTerminal["variable_identifier"] = 2010] = "variable_identifier";
|
|
1432
|
+
NoneTerminal[NoneTerminal["variable_identifier_node"] = 2011] = "variable_identifier_node";
|
|
1433
|
+
NoneTerminal[NoneTerminal["primary_expression"] = 2012] = "primary_expression";
|
|
1434
|
+
NoneTerminal[NoneTerminal["postfix_expression"] = 2013] = "postfix_expression";
|
|
1435
|
+
NoneTerminal[NoneTerminal["integer_expression"] = 2014] = "integer_expression";
|
|
1436
|
+
NoneTerminal[NoneTerminal["function_call"] = 2015] = "function_call";
|
|
1437
|
+
NoneTerminal[NoneTerminal["function_call_generic"] = 2016] = "function_call_generic";
|
|
1438
|
+
NoneTerminal[NoneTerminal["function_call_header_no_parameters"] = 2017] = "function_call_header_no_parameters";
|
|
1439
|
+
NoneTerminal[NoneTerminal["function_call_header_with_parameters"] = 2018] = "function_call_header_with_parameters";
|
|
1440
|
+
NoneTerminal[NoneTerminal["function_call_parameter_list"] = 2019] = "function_call_parameter_list";
|
|
1441
|
+
NoneTerminal[NoneTerminal["function_call_header"] = 2020] = "function_call_header";
|
|
1442
|
+
NoneTerminal[NoneTerminal["function_identifier"] = 2021] = "function_identifier";
|
|
1443
|
+
NoneTerminal[NoneTerminal["constructor_identifier"] = 2022] = "constructor_identifier";
|
|
1444
|
+
NoneTerminal[NoneTerminal["unary_expression"] = 2023] = "unary_expression";
|
|
1445
|
+
NoneTerminal[NoneTerminal["unary_operator"] = 2024] = "unary_operator";
|
|
1446
|
+
NoneTerminal[NoneTerminal["multiplicative_expression"] = 2025] = "multiplicative_expression";
|
|
1447
|
+
NoneTerminal[NoneTerminal["additive_expression"] = 2026] = "additive_expression";
|
|
1448
|
+
NoneTerminal[NoneTerminal["shift_expression"] = 2027] = "shift_expression";
|
|
1449
|
+
NoneTerminal[NoneTerminal["relational_expression"] = 2028] = "relational_expression";
|
|
1450
|
+
NoneTerminal[NoneTerminal["equality_expression"] = 2029] = "equality_expression";
|
|
1451
|
+
NoneTerminal[NoneTerminal["and_expression"] = 2030] = "and_expression";
|
|
1452
|
+
NoneTerminal[NoneTerminal["inclusive_or_expression"] = 2031] = "inclusive_or_expression";
|
|
1453
|
+
NoneTerminal[NoneTerminal["exclusive_or_expression"] = 2032] = "exclusive_or_expression";
|
|
1454
|
+
NoneTerminal[NoneTerminal["logical_and_expression"] = 2033] = "logical_and_expression";
|
|
1455
|
+
NoneTerminal[NoneTerminal["logical_xor_expression"] = 2034] = "logical_xor_expression";
|
|
1456
|
+
NoneTerminal[NoneTerminal["logical_or_expression"] = 2035] = "logical_or_expression";
|
|
1457
|
+
NoneTerminal[NoneTerminal["conditional_expression"] = 2036] = "conditional_expression";
|
|
1458
|
+
NoneTerminal[NoneTerminal["assignment_expression"] = 2037] = "assignment_expression";
|
|
1459
|
+
NoneTerminal[NoneTerminal["assignment_operator"] = 2038] = "assignment_operator";
|
|
1460
|
+
NoneTerminal[NoneTerminal["expression"] = 2039] = "expression";
|
|
1461
|
+
NoneTerminal[NoneTerminal["integer_constant_expression"] = 2040] = "integer_constant_expression";
|
|
1462
|
+
NoneTerminal[NoneTerminal["integer_constant_expression_operator"] = 2041] = "integer_constant_expression_operator";
|
|
1463
|
+
NoneTerminal[NoneTerminal["declaration"] = 2042] = "declaration";
|
|
1464
|
+
NoneTerminal[NoneTerminal["function_prototype"] = 2043] = "function_prototype";
|
|
1465
|
+
NoneTerminal[NoneTerminal["function_declarator"] = 2044] = "function_declarator";
|
|
1466
|
+
NoneTerminal[NoneTerminal["function_header_with_parameters"] = 2045] = "function_header_with_parameters";
|
|
1467
|
+
NoneTerminal[NoneTerminal["function_header"] = 2046] = "function_header";
|
|
1468
|
+
NoneTerminal[NoneTerminal["function_parameter_list"] = 2047] = "function_parameter_list";
|
|
1469
|
+
NoneTerminal[NoneTerminal["parameter_declarator"] = 2048] = "parameter_declarator";
|
|
1470
|
+
NoneTerminal[NoneTerminal["parameter_declaration"] = 2049] = "parameter_declaration";
|
|
1471
|
+
NoneTerminal[NoneTerminal["parameter_qualifier"] = 2050] = "parameter_qualifier";
|
|
1472
|
+
NoneTerminal[NoneTerminal["parameter_type_specifier"] = 2051] = "parameter_type_specifier";
|
|
1473
|
+
NoneTerminal[NoneTerminal["init_declarator_list"] = 2052] = "init_declarator_list";
|
|
1474
|
+
NoneTerminal[NoneTerminal["single_declaration"] = 2053] = "single_declaration";
|
|
1475
|
+
NoneTerminal[NoneTerminal["fully_specified_type"] = 2054] = "fully_specified_type";
|
|
1476
|
+
NoneTerminal[NoneTerminal["type_qualifier"] = 2055] = "type_qualifier";
|
|
1477
|
+
NoneTerminal[NoneTerminal["single_type_qualifier"] = 2056] = "single_type_qualifier";
|
|
1478
|
+
NoneTerminal[NoneTerminal["storage_qualifier"] = 2057] = "storage_qualifier";
|
|
1479
|
+
NoneTerminal[NoneTerminal["precision_qualifier"] = 2058] = "precision_qualifier";
|
|
1480
|
+
NoneTerminal[NoneTerminal["interpolation_qualifier"] = 2059] = "interpolation_qualifier";
|
|
1481
|
+
NoneTerminal[NoneTerminal["invariant_qualifier"] = 2060] = "invariant_qualifier";
|
|
1482
|
+
NoneTerminal[NoneTerminal["type_specifier"] = 2061] = "type_specifier";
|
|
1483
|
+
NoneTerminal[NoneTerminal["type_specifier_nonarray"] = 2062] = "type_specifier_nonarray";
|
|
1484
|
+
NoneTerminal[NoneTerminal["type_specifier_no_prec"] = 2063] = "type_specifier_no_prec";
|
|
1485
|
+
NoneTerminal[NoneTerminal["basic_type"] = 2064] = "basic_type";
|
|
1486
|
+
NoneTerminal[NoneTerminal["struct_specifier"] = 2065] = "struct_specifier";
|
|
1487
|
+
NoneTerminal[NoneTerminal["struct_declaration_list"] = 2066] = "struct_declaration_list";
|
|
1488
|
+
NoneTerminal[NoneTerminal["struct_declaration"] = 2067] = "struct_declaration";
|
|
1489
|
+
NoneTerminal[NoneTerminal["layout_qualifier"] = 2068] = "layout_qualifier";
|
|
1490
|
+
NoneTerminal[NoneTerminal["struct_declarator_list"] = 2069] = "struct_declarator_list";
|
|
1491
|
+
NoneTerminal[NoneTerminal["struct_declarator"] = 2070] = "struct_declarator";
|
|
1492
|
+
NoneTerminal[NoneTerminal["identifier_list"] = 2071] = "identifier_list";
|
|
1493
|
+
NoneTerminal[NoneTerminal["decl_identifier"] = 2072] = "decl_identifier";
|
|
1494
|
+
NoneTerminal[NoneTerminal["initializer"] = 2073] = "initializer";
|
|
1495
|
+
NoneTerminal[NoneTerminal["initializer_list"] = 2074] = "initializer_list";
|
|
1496
|
+
NoneTerminal[NoneTerminal["declaration_statement"] = 2075] = "declaration_statement";
|
|
1497
|
+
NoneTerminal[NoneTerminal["simple_statement"] = 2076] = "simple_statement";
|
|
1498
|
+
NoneTerminal[NoneTerminal["compound_statement_no_scope"] = 2077] = "compound_statement_no_scope";
|
|
1499
|
+
NoneTerminal[NoneTerminal["statement_with_scope"] = 2078] = "statement_with_scope";
|
|
1500
|
+
NoneTerminal[NoneTerminal["compound_statement"] = 2079] = "compound_statement";
|
|
1501
|
+
NoneTerminal[NoneTerminal["statement"] = 2080] = "statement";
|
|
1502
|
+
NoneTerminal[NoneTerminal["statement_list"] = 2081] = "statement_list";
|
|
1503
|
+
NoneTerminal[NoneTerminal["iteration_statement_no_new_scope"] = 2082] = "iteration_statement_no_new_scope";
|
|
1504
|
+
NoneTerminal[NoneTerminal["expression_statement"] = 2083] = "expression_statement";
|
|
1505
|
+
NoneTerminal[NoneTerminal["selection_statement"] = 2084] = "selection_statement";
|
|
1506
|
+
NoneTerminal[NoneTerminal["selection_rest_statement"] = 2085] = "selection_rest_statement";
|
|
1507
|
+
NoneTerminal[NoneTerminal["condition"] = 2086] = "condition";
|
|
1508
|
+
NoneTerminal[NoneTerminal["conditionopt"] = 2087] = "conditionopt";
|
|
1509
|
+
NoneTerminal[NoneTerminal["iteration_statement"] = 2088] = "iteration_statement";
|
|
1510
|
+
NoneTerminal[NoneTerminal["for_init_statement"] = 2089] = "for_init_statement";
|
|
1511
|
+
NoneTerminal[NoneTerminal["for_rest_statement"] = 2090] = "for_rest_statement";
|
|
1512
|
+
NoneTerminal[NoneTerminal["jump_statement"] = 2091] = "jump_statement";
|
|
1513
|
+
NoneTerminal[NoneTerminal["external_declaration"] = 2092] = "external_declaration";
|
|
1514
|
+
NoneTerminal[NoneTerminal["function_definition"] = 2093] = "function_definition";
|
|
1515
|
+
NoneTerminal[NoneTerminal["field_selection"] = 2094] = "field_selection";
|
|
1516
|
+
NoneTerminal[NoneTerminal["bool_constant"] = 2095] = "bool_constant";
|
|
1517
|
+
NoneTerminal[NoneTerminal["function_identifier_node"] = 2096] = "function_identifier_node";
|
|
1518
|
+
NoneTerminal[NoneTerminal["typename_identifier_node"] = 2097] = "typename_identifier_node";
|
|
1519
|
+
NoneTerminal[NoneTerminal["scope_brace"] = 2098] = "scope_brace";
|
|
1520
|
+
NoneTerminal[NoneTerminal["scope_end_brace"] = 2099] = "scope_end_brace";
|
|
1521
|
+
NoneTerminal[NoneTerminal["_ignore"] = 2100] = "_ignore";
|
|
1514
1522
|
return NoneTerminal;
|
|
1515
1523
|
}({});
|
|
1516
1524
|
|
|
@@ -1585,7 +1593,9 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
1585
1593
|
_proto.codeGen = function codeGen(visitor) {
|
|
1586
1594
|
return visitor.defaultCodeGen(this.children);
|
|
1587
1595
|
};
|
|
1588
|
-
|
|
1596
|
+
/**
|
|
1597
|
+
* Do semantic analyze right after the ast node is generated.
|
|
1598
|
+
*/ _proto.semanticAnalyze = function semanticAnalyze(sa) {};
|
|
1589
1599
|
_create_class(TreeNode, [
|
|
1590
1600
|
{
|
|
1591
1601
|
key: "children",
|
|
@@ -1716,19 +1726,23 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
1716
1726
|
this.arraySpecifier = undefined;
|
|
1717
1727
|
};
|
|
1718
1728
|
_proto.semanticAnalyze = function semanticAnalyze(sa) {
|
|
1719
|
-
var
|
|
1720
|
-
var
|
|
1721
|
-
|
|
1729
|
+
var children = this.children;
|
|
1730
|
+
var childrenLen = children.length;
|
|
1731
|
+
var fullyType = children[0];
|
|
1732
|
+
var typeSpecifier = fullyType.typeSpecifier;
|
|
1733
|
+
this.typeSpecifier = typeSpecifier;
|
|
1734
|
+
this.arraySpecifier = typeSpecifier.arraySpecifier;
|
|
1735
|
+
var id = children[1];
|
|
1722
1736
|
var sm;
|
|
1723
|
-
if (
|
|
1724
|
-
var symbolType = new SymbolType(fullyType.type,
|
|
1725
|
-
var initializer =
|
|
1737
|
+
if (childrenLen === 2 || childrenLen === 4) {
|
|
1738
|
+
var symbolType = new SymbolType(fullyType.type, typeSpecifier.lexeme, this.arraySpecifier);
|
|
1739
|
+
var initializer = children[3];
|
|
1726
1740
|
sm = new VarSymbol(id.lexeme, symbolType, false, initializer);
|
|
1727
1741
|
} else {
|
|
1728
|
-
var arraySpecifier =
|
|
1742
|
+
var arraySpecifier = children[2];
|
|
1729
1743
|
this.arraySpecifier = arraySpecifier;
|
|
1730
|
-
var symbolType1 = new SymbolType(fullyType.type,
|
|
1731
|
-
var initializer1 =
|
|
1744
|
+
var symbolType1 = new SymbolType(fullyType.type, typeSpecifier.lexeme, this.arraySpecifier);
|
|
1745
|
+
var initializer1 = children[4];
|
|
1732
1746
|
sm = new VarSymbol(id.lexeme, symbolType1, false, initializer1);
|
|
1733
1747
|
}
|
|
1734
1748
|
sa.symbolTableStack.insert(sm);
|
|
@@ -1845,6 +1859,12 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
1845
1859
|
return (_this_children = this.children) == null ? void 0 : (_this_children_ = _this_children[1]) == null ? void 0 : _this_children_.size;
|
|
1846
1860
|
}
|
|
1847
1861
|
},
|
|
1862
|
+
{
|
|
1863
|
+
key: "arraySpecifier",
|
|
1864
|
+
get: function get() {
|
|
1865
|
+
return this.children[1];
|
|
1866
|
+
}
|
|
1867
|
+
},
|
|
1848
1868
|
{
|
|
1849
1869
|
key: "isCustom",
|
|
1850
1870
|
get: function get() {
|
|
@@ -2857,14 +2877,15 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
2857
2877
|
}
|
|
2858
2878
|
var _proto = VariableDeclaration.prototype;
|
|
2859
2879
|
_proto.semanticAnalyze = function semanticAnalyze(sa) {
|
|
2860
|
-
var
|
|
2861
|
-
var
|
|
2862
|
-
var
|
|
2863
|
-
|
|
2880
|
+
var children = this.children;
|
|
2881
|
+
var type = children[0];
|
|
2882
|
+
var ident = children[1];
|
|
2883
|
+
this.type = type;
|
|
2884
|
+
var sm = new VarSymbol(ident.lexeme, new SymbolType(type.type, type.typeSpecifier.lexeme), true, this);
|
|
2864
2885
|
sa.symbolTableStack.insert(sm);
|
|
2865
2886
|
};
|
|
2866
2887
|
_proto.codeGen = function codeGen(visitor) {
|
|
2867
|
-
return visitor.visitGlobalVariableDeclaration(this);
|
|
2888
|
+
return visitor.visitGlobalVariableDeclaration(this) + ";";
|
|
2868
2889
|
};
|
|
2869
2890
|
return VariableDeclaration;
|
|
2870
2891
|
}(TreeNode);
|
|
@@ -2872,6 +2893,45 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
2872
2893
|
VariableDeclaration = __decorate([
|
|
2873
2894
|
ASTNodeDecorator(NoneTerminal.variable_declaration)
|
|
2874
2895
|
], VariableDeclaration);
|
|
2896
|
+
var VariableDeclarationList = /*#__PURE__*/ function(TreeNode) {
|
|
2897
|
+
_inherits(VariableDeclarationList, TreeNode);
|
|
2898
|
+
function VariableDeclarationList() {
|
|
2899
|
+
return TreeNode.apply(this, arguments) || this;
|
|
2900
|
+
}
|
|
2901
|
+
var _proto = VariableDeclarationList.prototype;
|
|
2902
|
+
_proto.semanticAnalyze = function semanticAnalyze(sa) {
|
|
2903
|
+
var children = this.children;
|
|
2904
|
+
var length = children.length;
|
|
2905
|
+
var variableDeclaration = children[0];
|
|
2906
|
+
var type = variableDeclaration.type;
|
|
2907
|
+
this.type = type;
|
|
2908
|
+
if (length === 1) {
|
|
2909
|
+
return;
|
|
2910
|
+
}
|
|
2911
|
+
var ident = children[2];
|
|
2912
|
+
var newVariable = VariableDeclaration.pool.get();
|
|
2913
|
+
if (length === 3) {
|
|
2914
|
+
// variable_declaration_list ',' id
|
|
2915
|
+
newVariable.set(ident.location, [
|
|
2916
|
+
type,
|
|
2917
|
+
ident
|
|
2918
|
+
]);
|
|
2919
|
+
} else {
|
|
2920
|
+
// variable_declaration_list ',' id array_specifier
|
|
2921
|
+
newVariable.set(ident.location, [
|
|
2922
|
+
type,
|
|
2923
|
+
ident,
|
|
2924
|
+
children[3]
|
|
2925
|
+
]);
|
|
2926
|
+
}
|
|
2927
|
+
newVariable.semanticAnalyze(sa);
|
|
2928
|
+
};
|
|
2929
|
+
return VariableDeclarationList;
|
|
2930
|
+
}(TreeNode);
|
|
2931
|
+
ASTNode.VariableDeclarationList = VariableDeclarationList;
|
|
2932
|
+
VariableDeclarationList = __decorate([
|
|
2933
|
+
ASTNodeDecorator(NoneTerminal.variable_declaration_list)
|
|
2934
|
+
], VariableDeclarationList);
|
|
2875
2935
|
var VariableIdentifier = /*#__PURE__*/ function(TreeNode) {
|
|
2876
2936
|
_inherits(VariableIdentifier, TreeNode);
|
|
2877
2937
|
function VariableIdentifier() {
|
|
@@ -2993,7 +3053,7 @@ var productionAndRules = [].concat(GrammarUtils.createProductionWithOptions(None
|
|
|
2993
3053
|
NoneTerminal.precision_specifier
|
|
2994
3054
|
],
|
|
2995
3055
|
[
|
|
2996
|
-
NoneTerminal.
|
|
3056
|
+
NoneTerminal.variable_declaration_statement
|
|
2997
3057
|
],
|
|
2998
3058
|
[
|
|
2999
3059
|
NoneTerminal.struct_specifier
|
|
@@ -3003,22 +3063,35 @@ var productionAndRules = [].concat(GrammarUtils.createProductionWithOptions(None
|
|
|
3003
3063
|
]
|
|
3004
3064
|
]), GrammarUtils.createProductionWithOptions(NoneTerminal.variable_declaration, [
|
|
3005
3065
|
[
|
|
3006
|
-
|
|
3007
|
-
ETokenType.ID
|
|
3008
|
-
ETokenType.SEMICOLON
|
|
3066
|
+
NoneTerminal.fully_specified_type,
|
|
3067
|
+
ETokenType.ID
|
|
3009
3068
|
],
|
|
3010
3069
|
[
|
|
3011
3070
|
NoneTerminal.fully_specified_type,
|
|
3012
3071
|
ETokenType.ID,
|
|
3013
|
-
|
|
3072
|
+
NoneTerminal.array_specifier
|
|
3073
|
+
]
|
|
3074
|
+
], ASTNode.VariableDeclaration.pool), GrammarUtils.createProductionWithOptions(NoneTerminal.variable_declaration_list, [
|
|
3075
|
+
[
|
|
3076
|
+
NoneTerminal.variable_declaration
|
|
3014
3077
|
],
|
|
3015
3078
|
[
|
|
3016
|
-
NoneTerminal.
|
|
3079
|
+
NoneTerminal.variable_declaration_list,
|
|
3080
|
+
ETokenType.COMMA,
|
|
3081
|
+
ETokenType.ID
|
|
3082
|
+
],
|
|
3083
|
+
[
|
|
3084
|
+
NoneTerminal.variable_declaration_list,
|
|
3085
|
+
ETokenType.COMMA,
|
|
3017
3086
|
ETokenType.ID,
|
|
3018
|
-
NoneTerminal.array_specifier
|
|
3087
|
+
NoneTerminal.array_specifier
|
|
3088
|
+
]
|
|
3089
|
+
], ASTNode.VariableDeclarationList.pool), GrammarUtils.createProductionWithOptions(NoneTerminal.variable_declaration_statement, [
|
|
3090
|
+
[
|
|
3091
|
+
NoneTerminal.variable_declaration_list,
|
|
3019
3092
|
ETokenType.SEMICOLON
|
|
3020
3093
|
]
|
|
3021
|
-
]
|
|
3094
|
+
]), GrammarUtils.createProductionWithOptions(NoneTerminal.ext_builtin_type_specifier_nonarray, [
|
|
3022
3095
|
[
|
|
3023
3096
|
EKeyword.VOID
|
|
3024
3097
|
],
|
|
@@ -5184,7 +5257,7 @@ var PpScanner = /*#__PURE__*/ function(BaseScanner) {
|
|
|
5184
5257
|
return !!this._definedMacros.get(macro.lexeme);
|
|
5185
5258
|
} else {
|
|
5186
5259
|
var macro1 = this._definedMacros.get(id.lexeme);
|
|
5187
|
-
if (!macro1) {
|
|
5260
|
+
if (!macro1 || !macro1.body) {
|
|
5188
5261
|
return false;
|
|
5189
5262
|
}
|
|
5190
5263
|
if (macro1.isFunction) {
|
|
@@ -6729,7 +6802,7 @@ ShaderLab._shaderPositionPool = ShaderLabUtils.createObjectPool(ShaderPosition);
|
|
|
6729
6802
|
ShaderLab._shaderRangePool = ShaderLabUtils.createObjectPool(ShaderRange);
|
|
6730
6803
|
|
|
6731
6804
|
//@ts-ignore
|
|
6732
|
-
var version = "1.4.0-
|
|
6805
|
+
var version = "1.4.0-beta.0";
|
|
6733
6806
|
var mode = "Release";
|
|
6734
6807
|
console.log("Galacean ShaderLab version: " + version + ". mode: " + mode);
|
|
6735
6808
|
|