@galacean/engine-shaderlab 1.4.0-alpha.3 → 1.4.0-beta.1
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/module.js
CHANGED
|
@@ -540,7 +540,7 @@ var ETokenType = /*#__PURE__*/ function(ETokenType) {
|
|
|
540
540
|
/** , */ ETokenType[ETokenType["COMMA"] = 1032] = "COMMA";
|
|
541
541
|
ETokenType[ETokenType["COLON"] = 1033] = "COLON";
|
|
542
542
|
/** = */ ETokenType[ETokenType["EQUAL"] = 1034] = "EQUAL";
|
|
543
|
-
ETokenType[ETokenType["SEMICOLON"] = 1035] = "SEMICOLON";
|
|
543
|
+
/** ; */ ETokenType[ETokenType["SEMICOLON"] = 1035] = "SEMICOLON";
|
|
544
544
|
/** ! */ ETokenType[ETokenType["BANG"] = 1036] = "BANG";
|
|
545
545
|
/** \- */ ETokenType[ETokenType["DASH"] = 1037] = "DASH";
|
|
546
546
|
/** ~ */ ETokenType[ETokenType["TILDE"] = 1038] = "TILDE";
|
|
@@ -637,7 +637,8 @@ var LexerUtils = /*#__PURE__*/ function() {
|
|
|
637
637
|
};
|
|
638
638
|
LexerUtils.isSpace = function isSpace(charCode) {
|
|
639
639
|
return charCode === 9 || // Tab
|
|
640
|
-
charCode === 10 || // Line break
|
|
640
|
+
charCode === 10 || // Line break - /n
|
|
641
|
+
charCode === 13 || // Carriage return -/r
|
|
641
642
|
charCode === 32 // Space
|
|
642
643
|
;
|
|
643
644
|
};
|
|
@@ -710,7 +711,11 @@ var BaseScanner = /*#__PURE__*/ function() {
|
|
|
710
711
|
var start = this.getCurPosition();
|
|
711
712
|
this.advance(2);
|
|
712
713
|
// single line comments
|
|
713
|
-
|
|
714
|
+
var curChar = this.getCurChar();
|
|
715
|
+
while(curChar !== "\n" && curChar !== "\r" && !this.isEnd()){
|
|
716
|
+
this._advance();
|
|
717
|
+
curChar = this.getCurChar();
|
|
718
|
+
}
|
|
714
719
|
this.skipCommentsAndSpace();
|
|
715
720
|
return ShaderLab.createRange(start, this.getCurPosition());
|
|
716
721
|
} else if (this.peek(2) === "/*") {
|
|
@@ -820,7 +825,8 @@ var BaseScanner = /*#__PURE__*/ function() {
|
|
|
820
825
|
BaseScanner._spaceCharsWithBreak = [
|
|
821
826
|
" ",
|
|
822
827
|
"\t",
|
|
823
|
-
"\n"
|
|
828
|
+
"\n",
|
|
829
|
+
"\r"
|
|
824
830
|
];
|
|
825
831
|
BaseScanner._spaceChars = [
|
|
826
832
|
" ",
|
|
@@ -1412,101 +1418,103 @@ var NoneTerminal = /*#__PURE__*/ function(NoneTerminal) {
|
|
|
1412
1418
|
// glsl
|
|
1413
1419
|
NoneTerminal[NoneTerminal["global_declaration"] = 2002] = "global_declaration";
|
|
1414
1420
|
NoneTerminal[NoneTerminal["variable_declaration"] = 2003] = "variable_declaration";
|
|
1415
|
-
NoneTerminal[NoneTerminal["
|
|
1416
|
-
NoneTerminal[NoneTerminal["
|
|
1417
|
-
NoneTerminal[NoneTerminal["
|
|
1418
|
-
NoneTerminal[NoneTerminal["
|
|
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["
|
|
1421
|
+
NoneTerminal[NoneTerminal["variable_declaration_list"] = 2004] = "variable_declaration_list";
|
|
1422
|
+
NoneTerminal[NoneTerminal["variable_declaration_statement"] = 2005] = "variable_declaration_statement";
|
|
1423
|
+
NoneTerminal[NoneTerminal["array_specifier_list"] = 2006] = "array_specifier_list";
|
|
1424
|
+
NoneTerminal[NoneTerminal["array_specifier"] = 2007] = "array_specifier";
|
|
1425
|
+
NoneTerminal[NoneTerminal["ext_builtin_type_specifier_nonarray"] = 2008] = "ext_builtin_type_specifier_nonarray";
|
|
1426
|
+
NoneTerminal[NoneTerminal["precision_specifier"] = 2009] = "precision_specifier";
|
|
1427
|
+
NoneTerminal[NoneTerminal["variable_identifier"] = 2010] = "variable_identifier";
|
|
1428
|
+
NoneTerminal[NoneTerminal["variable_identifier_node"] = 2011] = "variable_identifier_node";
|
|
1429
|
+
NoneTerminal[NoneTerminal["primary_expression"] = 2012] = "primary_expression";
|
|
1430
|
+
NoneTerminal[NoneTerminal["postfix_expression"] = 2013] = "postfix_expression";
|
|
1431
|
+
NoneTerminal[NoneTerminal["integer_expression"] = 2014] = "integer_expression";
|
|
1432
|
+
NoneTerminal[NoneTerminal["function_call"] = 2015] = "function_call";
|
|
1433
|
+
NoneTerminal[NoneTerminal["function_call_generic"] = 2016] = "function_call_generic";
|
|
1434
|
+
NoneTerminal[NoneTerminal["function_call_header_no_parameters"] = 2017] = "function_call_header_no_parameters";
|
|
1435
|
+
NoneTerminal[NoneTerminal["function_call_header_with_parameters"] = 2018] = "function_call_header_with_parameters";
|
|
1436
|
+
NoneTerminal[NoneTerminal["function_call_parameter_list"] = 2019] = "function_call_parameter_list";
|
|
1437
|
+
NoneTerminal[NoneTerminal["function_call_header"] = 2020] = "function_call_header";
|
|
1438
|
+
NoneTerminal[NoneTerminal["function_identifier"] = 2021] = "function_identifier";
|
|
1439
|
+
NoneTerminal[NoneTerminal["constructor_identifier"] = 2022] = "constructor_identifier";
|
|
1440
|
+
NoneTerminal[NoneTerminal["unary_expression"] = 2023] = "unary_expression";
|
|
1441
|
+
NoneTerminal[NoneTerminal["unary_operator"] = 2024] = "unary_operator";
|
|
1442
|
+
NoneTerminal[NoneTerminal["multiplicative_expression"] = 2025] = "multiplicative_expression";
|
|
1443
|
+
NoneTerminal[NoneTerminal["additive_expression"] = 2026] = "additive_expression";
|
|
1444
|
+
NoneTerminal[NoneTerminal["shift_expression"] = 2027] = "shift_expression";
|
|
1445
|
+
NoneTerminal[NoneTerminal["relational_expression"] = 2028] = "relational_expression";
|
|
1446
|
+
NoneTerminal[NoneTerminal["equality_expression"] = 2029] = "equality_expression";
|
|
1447
|
+
NoneTerminal[NoneTerminal["and_expression"] = 2030] = "and_expression";
|
|
1448
|
+
NoneTerminal[NoneTerminal["inclusive_or_expression"] = 2031] = "inclusive_or_expression";
|
|
1449
|
+
NoneTerminal[NoneTerminal["exclusive_or_expression"] = 2032] = "exclusive_or_expression";
|
|
1450
|
+
NoneTerminal[NoneTerminal["logical_and_expression"] = 2033] = "logical_and_expression";
|
|
1451
|
+
NoneTerminal[NoneTerminal["logical_xor_expression"] = 2034] = "logical_xor_expression";
|
|
1452
|
+
NoneTerminal[NoneTerminal["logical_or_expression"] = 2035] = "logical_or_expression";
|
|
1453
|
+
NoneTerminal[NoneTerminal["conditional_expression"] = 2036] = "conditional_expression";
|
|
1454
|
+
NoneTerminal[NoneTerminal["assignment_expression"] = 2037] = "assignment_expression";
|
|
1455
|
+
NoneTerminal[NoneTerminal["assignment_operator"] = 2038] = "assignment_operator";
|
|
1456
|
+
NoneTerminal[NoneTerminal["expression"] = 2039] = "expression";
|
|
1457
|
+
NoneTerminal[NoneTerminal["integer_constant_expression"] = 2040] = "integer_constant_expression";
|
|
1458
|
+
NoneTerminal[NoneTerminal["integer_constant_expression_operator"] = 2041] = "integer_constant_expression_operator";
|
|
1459
|
+
NoneTerminal[NoneTerminal["declaration"] = 2042] = "declaration";
|
|
1460
|
+
NoneTerminal[NoneTerminal["function_prototype"] = 2043] = "function_prototype";
|
|
1461
|
+
NoneTerminal[NoneTerminal["function_declarator"] = 2044] = "function_declarator";
|
|
1462
|
+
NoneTerminal[NoneTerminal["function_header_with_parameters"] = 2045] = "function_header_with_parameters";
|
|
1463
|
+
NoneTerminal[NoneTerminal["function_header"] = 2046] = "function_header";
|
|
1464
|
+
NoneTerminal[NoneTerminal["function_parameter_list"] = 2047] = "function_parameter_list";
|
|
1465
|
+
NoneTerminal[NoneTerminal["parameter_declarator"] = 2048] = "parameter_declarator";
|
|
1466
|
+
NoneTerminal[NoneTerminal["parameter_declaration"] = 2049] = "parameter_declaration";
|
|
1467
|
+
NoneTerminal[NoneTerminal["parameter_qualifier"] = 2050] = "parameter_qualifier";
|
|
1468
|
+
NoneTerminal[NoneTerminal["parameter_type_specifier"] = 2051] = "parameter_type_specifier";
|
|
1469
|
+
NoneTerminal[NoneTerminal["init_declarator_list"] = 2052] = "init_declarator_list";
|
|
1470
|
+
NoneTerminal[NoneTerminal["single_declaration"] = 2053] = "single_declaration";
|
|
1471
|
+
NoneTerminal[NoneTerminal["fully_specified_type"] = 2054] = "fully_specified_type";
|
|
1472
|
+
NoneTerminal[NoneTerminal["type_qualifier"] = 2055] = "type_qualifier";
|
|
1473
|
+
NoneTerminal[NoneTerminal["single_type_qualifier"] = 2056] = "single_type_qualifier";
|
|
1474
|
+
NoneTerminal[NoneTerminal["storage_qualifier"] = 2057] = "storage_qualifier";
|
|
1475
|
+
NoneTerminal[NoneTerminal["precision_qualifier"] = 2058] = "precision_qualifier";
|
|
1476
|
+
NoneTerminal[NoneTerminal["interpolation_qualifier"] = 2059] = "interpolation_qualifier";
|
|
1477
|
+
NoneTerminal[NoneTerminal["invariant_qualifier"] = 2060] = "invariant_qualifier";
|
|
1478
|
+
NoneTerminal[NoneTerminal["type_specifier"] = 2061] = "type_specifier";
|
|
1479
|
+
NoneTerminal[NoneTerminal["type_specifier_nonarray"] = 2062] = "type_specifier_nonarray";
|
|
1480
|
+
NoneTerminal[NoneTerminal["type_specifier_no_prec"] = 2063] = "type_specifier_no_prec";
|
|
1481
|
+
NoneTerminal[NoneTerminal["basic_type"] = 2064] = "basic_type";
|
|
1482
|
+
NoneTerminal[NoneTerminal["struct_specifier"] = 2065] = "struct_specifier";
|
|
1483
|
+
NoneTerminal[NoneTerminal["struct_declaration_list"] = 2066] = "struct_declaration_list";
|
|
1484
|
+
NoneTerminal[NoneTerminal["struct_declaration"] = 2067] = "struct_declaration";
|
|
1485
|
+
NoneTerminal[NoneTerminal["layout_qualifier"] = 2068] = "layout_qualifier";
|
|
1486
|
+
NoneTerminal[NoneTerminal["struct_declarator_list"] = 2069] = "struct_declarator_list";
|
|
1487
|
+
NoneTerminal[NoneTerminal["struct_declarator"] = 2070] = "struct_declarator";
|
|
1488
|
+
NoneTerminal[NoneTerminal["identifier_list"] = 2071] = "identifier_list";
|
|
1489
|
+
NoneTerminal[NoneTerminal["decl_identifier"] = 2072] = "decl_identifier";
|
|
1490
|
+
NoneTerminal[NoneTerminal["initializer"] = 2073] = "initializer";
|
|
1491
|
+
NoneTerminal[NoneTerminal["initializer_list"] = 2074] = "initializer_list";
|
|
1492
|
+
NoneTerminal[NoneTerminal["declaration_statement"] = 2075] = "declaration_statement";
|
|
1493
|
+
NoneTerminal[NoneTerminal["simple_statement"] = 2076] = "simple_statement";
|
|
1494
|
+
NoneTerminal[NoneTerminal["compound_statement_no_scope"] = 2077] = "compound_statement_no_scope";
|
|
1495
|
+
NoneTerminal[NoneTerminal["statement_with_scope"] = 2078] = "statement_with_scope";
|
|
1496
|
+
NoneTerminal[NoneTerminal["compound_statement"] = 2079] = "compound_statement";
|
|
1497
|
+
NoneTerminal[NoneTerminal["statement"] = 2080] = "statement";
|
|
1498
|
+
NoneTerminal[NoneTerminal["statement_list"] = 2081] = "statement_list";
|
|
1499
|
+
NoneTerminal[NoneTerminal["iteration_statement_no_new_scope"] = 2082] = "iteration_statement_no_new_scope";
|
|
1500
|
+
NoneTerminal[NoneTerminal["expression_statement"] = 2083] = "expression_statement";
|
|
1501
|
+
NoneTerminal[NoneTerminal["selection_statement"] = 2084] = "selection_statement";
|
|
1502
|
+
NoneTerminal[NoneTerminal["selection_rest_statement"] = 2085] = "selection_rest_statement";
|
|
1503
|
+
NoneTerminal[NoneTerminal["condition"] = 2086] = "condition";
|
|
1504
|
+
NoneTerminal[NoneTerminal["conditionopt"] = 2087] = "conditionopt";
|
|
1505
|
+
NoneTerminal[NoneTerminal["iteration_statement"] = 2088] = "iteration_statement";
|
|
1506
|
+
NoneTerminal[NoneTerminal["for_init_statement"] = 2089] = "for_init_statement";
|
|
1507
|
+
NoneTerminal[NoneTerminal["for_rest_statement"] = 2090] = "for_rest_statement";
|
|
1508
|
+
NoneTerminal[NoneTerminal["jump_statement"] = 2091] = "jump_statement";
|
|
1509
|
+
NoneTerminal[NoneTerminal["external_declaration"] = 2092] = "external_declaration";
|
|
1510
|
+
NoneTerminal[NoneTerminal["function_definition"] = 2093] = "function_definition";
|
|
1511
|
+
NoneTerminal[NoneTerminal["field_selection"] = 2094] = "field_selection";
|
|
1512
|
+
NoneTerminal[NoneTerminal["bool_constant"] = 2095] = "bool_constant";
|
|
1513
|
+
NoneTerminal[NoneTerminal["function_identifier_node"] = 2096] = "function_identifier_node";
|
|
1514
|
+
NoneTerminal[NoneTerminal["typename_identifier_node"] = 2097] = "typename_identifier_node";
|
|
1515
|
+
NoneTerminal[NoneTerminal["scope_brace"] = 2098] = "scope_brace";
|
|
1516
|
+
NoneTerminal[NoneTerminal["scope_end_brace"] = 2099] = "scope_end_brace";
|
|
1517
|
+
NoneTerminal[NoneTerminal["_ignore"] = 2100] = "_ignore";
|
|
1510
1518
|
return NoneTerminal;
|
|
1511
1519
|
}({});
|
|
1512
1520
|
|
|
@@ -1581,7 +1589,9 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
1581
1589
|
_proto.codeGen = function codeGen(visitor) {
|
|
1582
1590
|
return visitor.defaultCodeGen(this.children);
|
|
1583
1591
|
};
|
|
1584
|
-
|
|
1592
|
+
/**
|
|
1593
|
+
* Do semantic analyze right after the ast node is generated.
|
|
1594
|
+
*/ _proto.semanticAnalyze = function semanticAnalyze(sa) {};
|
|
1585
1595
|
_create_class(TreeNode, [
|
|
1586
1596
|
{
|
|
1587
1597
|
key: "children",
|
|
@@ -1712,19 +1722,23 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
1712
1722
|
this.arraySpecifier = undefined;
|
|
1713
1723
|
};
|
|
1714
1724
|
_proto.semanticAnalyze = function semanticAnalyze(sa) {
|
|
1715
|
-
var
|
|
1716
|
-
var
|
|
1717
|
-
|
|
1725
|
+
var children = this.children;
|
|
1726
|
+
var childrenLen = children.length;
|
|
1727
|
+
var fullyType = children[0];
|
|
1728
|
+
var typeSpecifier = fullyType.typeSpecifier;
|
|
1729
|
+
this.typeSpecifier = typeSpecifier;
|
|
1730
|
+
this.arraySpecifier = typeSpecifier.arraySpecifier;
|
|
1731
|
+
var id = children[1];
|
|
1718
1732
|
var sm;
|
|
1719
|
-
if (
|
|
1720
|
-
var symbolType = new SymbolType(fullyType.type,
|
|
1721
|
-
var initializer =
|
|
1733
|
+
if (childrenLen === 2 || childrenLen === 4) {
|
|
1734
|
+
var symbolType = new SymbolType(fullyType.type, typeSpecifier.lexeme, this.arraySpecifier);
|
|
1735
|
+
var initializer = children[3];
|
|
1722
1736
|
sm = new VarSymbol(id.lexeme, symbolType, false, initializer);
|
|
1723
1737
|
} else {
|
|
1724
|
-
var arraySpecifier =
|
|
1738
|
+
var arraySpecifier = children[2];
|
|
1725
1739
|
this.arraySpecifier = arraySpecifier;
|
|
1726
|
-
var symbolType1 = new SymbolType(fullyType.type,
|
|
1727
|
-
var initializer1 =
|
|
1740
|
+
var symbolType1 = new SymbolType(fullyType.type, typeSpecifier.lexeme, this.arraySpecifier);
|
|
1741
|
+
var initializer1 = children[4];
|
|
1728
1742
|
sm = new VarSymbol(id.lexeme, symbolType1, false, initializer1);
|
|
1729
1743
|
}
|
|
1730
1744
|
sa.symbolTableStack.insert(sm);
|
|
@@ -1841,6 +1855,12 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
1841
1855
|
return (_this_children = this.children) == null ? void 0 : (_this_children_ = _this_children[1]) == null ? void 0 : _this_children_.size;
|
|
1842
1856
|
}
|
|
1843
1857
|
},
|
|
1858
|
+
{
|
|
1859
|
+
key: "arraySpecifier",
|
|
1860
|
+
get: function get() {
|
|
1861
|
+
return this.children[1];
|
|
1862
|
+
}
|
|
1863
|
+
},
|
|
1844
1864
|
{
|
|
1845
1865
|
key: "isCustom",
|
|
1846
1866
|
get: function get() {
|
|
@@ -2853,14 +2873,15 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
2853
2873
|
}
|
|
2854
2874
|
var _proto = VariableDeclaration.prototype;
|
|
2855
2875
|
_proto.semanticAnalyze = function semanticAnalyze(sa) {
|
|
2856
|
-
var
|
|
2857
|
-
var
|
|
2858
|
-
var
|
|
2859
|
-
|
|
2876
|
+
var children = this.children;
|
|
2877
|
+
var type = children[0];
|
|
2878
|
+
var ident = children[1];
|
|
2879
|
+
this.type = type;
|
|
2880
|
+
var sm = new VarSymbol(ident.lexeme, new SymbolType(type.type, type.typeSpecifier.lexeme), true, this);
|
|
2860
2881
|
sa.symbolTableStack.insert(sm);
|
|
2861
2882
|
};
|
|
2862
2883
|
_proto.codeGen = function codeGen(visitor) {
|
|
2863
|
-
return visitor.visitGlobalVariableDeclaration(this);
|
|
2884
|
+
return visitor.visitGlobalVariableDeclaration(this) + ";";
|
|
2864
2885
|
};
|
|
2865
2886
|
return VariableDeclaration;
|
|
2866
2887
|
}(TreeNode);
|
|
@@ -2868,6 +2889,45 @@ var TreeNode = /*#__PURE__*/ function() {
|
|
|
2868
2889
|
VariableDeclaration = __decorate([
|
|
2869
2890
|
ASTNodeDecorator(NoneTerminal.variable_declaration)
|
|
2870
2891
|
], VariableDeclaration);
|
|
2892
|
+
var VariableDeclarationList = /*#__PURE__*/ function(TreeNode) {
|
|
2893
|
+
_inherits(VariableDeclarationList, TreeNode);
|
|
2894
|
+
function VariableDeclarationList() {
|
|
2895
|
+
return TreeNode.apply(this, arguments) || this;
|
|
2896
|
+
}
|
|
2897
|
+
var _proto = VariableDeclarationList.prototype;
|
|
2898
|
+
_proto.semanticAnalyze = function semanticAnalyze(sa) {
|
|
2899
|
+
var children = this.children;
|
|
2900
|
+
var length = children.length;
|
|
2901
|
+
var variableDeclaration = children[0];
|
|
2902
|
+
var type = variableDeclaration.type;
|
|
2903
|
+
this.type = type;
|
|
2904
|
+
if (length === 1) {
|
|
2905
|
+
return;
|
|
2906
|
+
}
|
|
2907
|
+
var ident = children[2];
|
|
2908
|
+
var newVariable = VariableDeclaration.pool.get();
|
|
2909
|
+
if (length === 3) {
|
|
2910
|
+
// variable_declaration_list ',' id
|
|
2911
|
+
newVariable.set(ident.location, [
|
|
2912
|
+
type,
|
|
2913
|
+
ident
|
|
2914
|
+
]);
|
|
2915
|
+
} else {
|
|
2916
|
+
// variable_declaration_list ',' id array_specifier
|
|
2917
|
+
newVariable.set(ident.location, [
|
|
2918
|
+
type,
|
|
2919
|
+
ident,
|
|
2920
|
+
children[3]
|
|
2921
|
+
]);
|
|
2922
|
+
}
|
|
2923
|
+
newVariable.semanticAnalyze(sa);
|
|
2924
|
+
};
|
|
2925
|
+
return VariableDeclarationList;
|
|
2926
|
+
}(TreeNode);
|
|
2927
|
+
ASTNode.VariableDeclarationList = VariableDeclarationList;
|
|
2928
|
+
VariableDeclarationList = __decorate([
|
|
2929
|
+
ASTNodeDecorator(NoneTerminal.variable_declaration_list)
|
|
2930
|
+
], VariableDeclarationList);
|
|
2871
2931
|
var VariableIdentifier = /*#__PURE__*/ function(TreeNode) {
|
|
2872
2932
|
_inherits(VariableIdentifier, TreeNode);
|
|
2873
2933
|
function VariableIdentifier() {
|
|
@@ -2989,7 +3049,7 @@ var productionAndRules = [].concat(GrammarUtils.createProductionWithOptions(None
|
|
|
2989
3049
|
NoneTerminal.precision_specifier
|
|
2990
3050
|
],
|
|
2991
3051
|
[
|
|
2992
|
-
NoneTerminal.
|
|
3052
|
+
NoneTerminal.variable_declaration_statement
|
|
2993
3053
|
],
|
|
2994
3054
|
[
|
|
2995
3055
|
NoneTerminal.struct_specifier
|
|
@@ -2999,22 +3059,35 @@ var productionAndRules = [].concat(GrammarUtils.createProductionWithOptions(None
|
|
|
2999
3059
|
]
|
|
3000
3060
|
]), GrammarUtils.createProductionWithOptions(NoneTerminal.variable_declaration, [
|
|
3001
3061
|
[
|
|
3002
|
-
|
|
3003
|
-
ETokenType.ID
|
|
3004
|
-
ETokenType.SEMICOLON
|
|
3062
|
+
NoneTerminal.fully_specified_type,
|
|
3063
|
+
ETokenType.ID
|
|
3005
3064
|
],
|
|
3006
3065
|
[
|
|
3007
3066
|
NoneTerminal.fully_specified_type,
|
|
3008
3067
|
ETokenType.ID,
|
|
3009
|
-
|
|
3068
|
+
NoneTerminal.array_specifier
|
|
3069
|
+
]
|
|
3070
|
+
], ASTNode.VariableDeclaration.pool), GrammarUtils.createProductionWithOptions(NoneTerminal.variable_declaration_list, [
|
|
3071
|
+
[
|
|
3072
|
+
NoneTerminal.variable_declaration
|
|
3010
3073
|
],
|
|
3011
3074
|
[
|
|
3012
|
-
NoneTerminal.
|
|
3075
|
+
NoneTerminal.variable_declaration_list,
|
|
3076
|
+
ETokenType.COMMA,
|
|
3077
|
+
ETokenType.ID
|
|
3078
|
+
],
|
|
3079
|
+
[
|
|
3080
|
+
NoneTerminal.variable_declaration_list,
|
|
3081
|
+
ETokenType.COMMA,
|
|
3013
3082
|
ETokenType.ID,
|
|
3014
|
-
NoneTerminal.array_specifier
|
|
3083
|
+
NoneTerminal.array_specifier
|
|
3084
|
+
]
|
|
3085
|
+
], ASTNode.VariableDeclarationList.pool), GrammarUtils.createProductionWithOptions(NoneTerminal.variable_declaration_statement, [
|
|
3086
|
+
[
|
|
3087
|
+
NoneTerminal.variable_declaration_list,
|
|
3015
3088
|
ETokenType.SEMICOLON
|
|
3016
3089
|
]
|
|
3017
|
-
]
|
|
3090
|
+
]), GrammarUtils.createProductionWithOptions(NoneTerminal.ext_builtin_type_specifier_nonarray, [
|
|
3018
3091
|
[
|
|
3019
3092
|
EKeyword.VOID
|
|
3020
3093
|
],
|
|
@@ -5180,7 +5253,7 @@ var PpScanner = /*#__PURE__*/ function(BaseScanner) {
|
|
|
5180
5253
|
return !!this._definedMacros.get(macro.lexeme);
|
|
5181
5254
|
} else {
|
|
5182
5255
|
var macro1 = this._definedMacros.get(id.lexeme);
|
|
5183
|
-
if (!macro1) {
|
|
5256
|
+
if (!macro1 || !macro1.body) {
|
|
5184
5257
|
return false;
|
|
5185
5258
|
}
|
|
5186
5259
|
if (macro1.isFunction) {
|
|
@@ -6725,7 +6798,7 @@ ShaderLab._shaderPositionPool = ShaderLabUtils.createObjectPool(ShaderPosition);
|
|
|
6725
6798
|
ShaderLab._shaderRangePool = ShaderLabUtils.createObjectPool(ShaderRange);
|
|
6726
6799
|
|
|
6727
6800
|
//@ts-ignore
|
|
6728
|
-
var version = "1.4.0-
|
|
6801
|
+
var version = "1.4.0-beta.1";
|
|
6729
6802
|
var mode = "Release";
|
|
6730
6803
|
console.log("Galacean ShaderLab version: " + version + ". mode: " + mode);
|
|
6731
6804
|
|