@galacean/engine-shaderlab 1.4.8 → 1.4.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-shaderlab",
3
- "version": "1.4.8",
3
+ "version": "1.4.10",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -26,11 +26,11 @@
26
26
  "verbose/package.json"
27
27
  ],
28
28
  "devDependencies": {
29
- "@galacean/engine-design": "1.4.8",
30
- "@galacean/engine": "1.4.8"
29
+ "@galacean/engine-design": "1.4.10",
30
+ "@galacean/engine": "1.4.10"
31
31
  },
32
32
  "peerDependencies": {
33
- "@galacean/engine": "1.4.8"
33
+ "@galacean/engine": "1.4.10"
34
34
  },
35
35
  "scripts": {
36
36
  "b:types": "tsc"
@@ -1,5 +1,5 @@
1
1
  import { Grammar } from "../parser/Grammar";
2
- import SematicAnalyzer from "../parser/SemanticAnalyzer";
2
+ import SemanticAnalyzer from "../parser/SemanticAnalyzer";
3
3
  declare const createGrammar: () => Grammar;
4
- declare const addTranslationRule: (sa: SematicAnalyzer) => void;
4
+ declare const addTranslationRule: (sa: SemanticAnalyzer) => void;
5
5
  export { createGrammar, addTranslationRule };
@@ -2,6 +2,6 @@ export default class LexerUtils {
2
2
  static isNum(charCode: number): boolean;
3
3
  static isLetter(charCode: number): boolean;
4
4
  static isAlpha(charCode: number): boolean;
5
- static isPpCharactors(charCode: number): boolean;
5
+ static isPpCharacters(charCode: number): boolean;
6
6
  static isSpace(charCode: number): charCode is 9 | 10 | 13 | 32;
7
7
  }
@@ -4,7 +4,7 @@ import { CodeGenVisitor } from "../codeGen";
4
4
  import { EKeyword, GalaceanDataType, ShaderRange, TokenType } from "../common";
5
5
  import { BaseToken, BaseToken as Token } from "../common/BaseToken";
6
6
  import { NoneTerminal } from "./GrammarSymbol";
7
- import SematicAnalyzer from "./SemanticAnalyzer";
7
+ import SemanticAnalyzer from "./SemanticAnalyzer";
8
8
  import { ShaderData } from "./ShaderInfo";
9
9
  import { FnSymbol, StructSymbol, VarSymbol } from "./symbolTable";
10
10
  import { IParamInfo, NodeChild, StructProp, SymbolType } from "./types";
@@ -25,26 +25,26 @@ export declare abstract class TreeNode implements IPoolElement {
25
25
  /**
26
26
  * Do semantic analyze right after the ast node is generated.
27
27
  */
28
- semanticAnalyze(sa: SematicAnalyzer): void;
28
+ semanticAnalyze(sa: SemanticAnalyzer): void;
29
29
  }
30
30
  export declare namespace ASTNode {
31
31
  export type ASTNodePool = ClearableObjectPool<{
32
32
  set: (loc: ShaderRange, children: NodeChild[]) => void;
33
33
  } & IPoolElement & TreeNode>;
34
34
  export function _unwrapToken(node: NodeChild): BaseToken<number>;
35
- export function get(pool: ASTNodePool, sa: SematicAnalyzer, loc: ShaderRange, children: NodeChild[]): void;
35
+ export function get(pool: ASTNodePool, sa: SemanticAnalyzer, loc: ShaderRange, children: NodeChild[]): void;
36
36
  export class TrivialNode extends TreeNode {
37
37
  }
38
38
  export class ScopeBrace extends TreeNode {
39
- semanticAnalyze(sa: SematicAnalyzer): void;
39
+ semanticAnalyze(sa: SemanticAnalyzer): void;
40
40
  }
41
41
  export class ScopeEndBrace extends TreeNode {
42
- semanticAnalyze(sa: SematicAnalyzer): void;
42
+ semanticAnalyze(sa: SemanticAnalyzer): void;
43
43
  }
44
44
  export class JumpStatement extends TreeNode {
45
45
  isFragReturnStatement: boolean;
46
46
  init(): void;
47
- semanticAnalyze(sa: SematicAnalyzer): void;
47
+ semanticAnalyze(sa: SemanticAnalyzer): void;
48
48
  codeGen(visitor: CodeGenVisitor): string;
49
49
  }
50
50
  export class ConditionOpt extends TreeNode {
@@ -68,35 +68,34 @@ export declare namespace ASTNode {
68
68
  init(): void;
69
69
  }
70
70
  export class InitializerList extends ExpressionAstNode {
71
- semanticAnalyze(sa: SematicAnalyzer): void;
71
+ semanticAnalyze(sa: SemanticAnalyzer): void;
72
72
  }
73
73
  export class Initializer extends ExpressionAstNode {
74
- semanticAnalyze(sa: SematicAnalyzer): void;
74
+ semanticAnalyze(sa: SemanticAnalyzer): void;
75
75
  }
76
76
  export class SingleDeclaration extends TreeNode {
77
77
  typeSpecifier: TypeSpecifier;
78
78
  arraySpecifier?: ArraySpecifier;
79
79
  init(): void;
80
- semanticAnalyze(sa: SematicAnalyzer): void;
80
+ semanticAnalyze(sa: SemanticAnalyzer): void;
81
81
  codeGen(visitor: CodeGenVisitor): string;
82
82
  }
83
83
  export class FullySpecifiedType extends TreeNode {
84
- get qualifierList(): EKeyword[];
85
- get typeSpecifier(): TypeSpecifier;
86
- get type(): GalaceanDataType;
84
+ typeSpecifier: TypeSpecifier;
85
+ type: GalaceanDataType;
86
+ semanticAnalyze(_: SemanticAnalyzer): void;
87
87
  }
88
88
  export class TypeQualifier extends TreeNode {
89
- qualifierList: EKeyword[];
90
- semanticAnalyze(sa: SematicAnalyzer): void;
91
89
  }
92
90
  export class SingleTypeQualifier extends TreeNode {
93
91
  qualifier: EKeyword;
94
92
  lexeme: string;
95
- semanticAnalyze(sa: SematicAnalyzer): void;
93
+ semanticAnalyze(sa: SemanticAnalyzer): void;
96
94
  }
97
95
  abstract class BasicTypeQualifier extends TreeNode {
98
- get qualifier(): EKeyword;
99
- get lexeme(): string;
96
+ qualifier: EKeyword;
97
+ lexeme: string;
98
+ semanticAnalyze(sa: SemanticAnalyzer): void;
100
99
  }
101
100
  export class StorageQualifier extends BasicTypeQualifier {
102
101
  }
@@ -107,24 +106,27 @@ export declare namespace ASTNode {
107
106
  export class InvariantQualifier extends BasicTypeQualifier {
108
107
  }
109
108
  export class TypeSpecifier extends TreeNode {
110
- get type(): GalaceanDataType;
111
- get lexeme(): string;
112
- get arraySize(): number;
109
+ type: GalaceanDataType;
110
+ lexeme: string;
111
+ arraySize?: number;
112
+ isCustom: boolean;
113
+ init(): void;
113
114
  get arraySpecifier(): ArraySpecifier;
114
- get isCustom(): boolean;
115
+ semanticAnalyze(sa: SemanticAnalyzer): void;
115
116
  }
116
117
  export class ArraySpecifier extends TreeNode {
117
- get size(): number | undefined;
118
+ size: number | undefined;
119
+ semanticAnalyze(sa: SemanticAnalyzer): void;
118
120
  }
119
121
  export class IntegerConstantExpressionOperator extends TreeNode {
120
122
  compute: (a: number, b: number) => number;
121
- get lexeme(): string;
122
- semanticAnalyze(sa: SematicAnalyzer): void;
123
+ lexeme: string;
124
+ semanticAnalyze(sa: SemanticAnalyzer): void;
123
125
  }
124
126
  export class IntegerConstantExpression extends TreeNode {
125
127
  value?: number;
126
128
  init(): void;
127
- semanticAnalyze(sa: SematicAnalyzer): void;
129
+ semanticAnalyze(sa: SemanticAnalyzer): void;
128
130
  }
129
131
  export class TypeSpecifierNonArray extends TreeNode {
130
132
  type: GalaceanDataType;
@@ -137,53 +139,56 @@ export declare namespace ASTNode {
137
139
  init(): void;
138
140
  }
139
141
  export class InitDeclaratorList extends TreeNode {
140
- get typeInfo(): SymbolType;
141
- semanticAnalyze(sa: SematicAnalyzer): void;
142
+ typeInfo: SymbolType;
143
+ semanticAnalyze(sa: SemanticAnalyzer): void;
142
144
  }
143
145
  export class IdentifierList extends TreeNode {
144
- get idList(): Token[];
146
+ idList: Token[];
147
+ init(): void;
148
+ semanticAnalyze(sa: SemanticAnalyzer): void;
145
149
  }
146
150
  export class Declaration extends TreeNode {
147
151
  codeGen(visitor: CodeGenVisitor): string;
148
152
  }
149
153
  export class FunctionProtoType extends TreeNode {
150
- private get declarator();
151
- get ident(): BaseToken<number>;
152
- get returnType(): FullySpecifiedType;
153
- get parameterList(): IParamInfo[];
154
- get paramSig(): GalaceanDataType[];
154
+ ident: Token;
155
+ returnType: FullySpecifiedType;
156
+ parameterList: IParamInfo[];
157
+ paramSig: GalaceanDataType[];
158
+ semanticAnalyze(sa: SemanticAnalyzer): void;
155
159
  codeGen(visitor: CodeGenVisitor): string;
156
160
  }
157
161
  export class FunctionDeclarator extends TreeNode {
158
- private get header();
159
- private get parameterList();
160
- get ident(): BaseToken<number>;
161
- get returnType(): FullySpecifiedType;
162
- get parameterInfoList(): IParamInfo[];
163
- get paramSig(): GalaceanDataType[];
164
- semanticAnalyze(sa: SematicAnalyzer): void;
162
+ ident: Token;
163
+ returnType: FullySpecifiedType;
164
+ parameterInfoList: IParamInfo[] | undefined;
165
+ paramSig: GalaceanDataType[] | undefined;
166
+ semanticAnalyze(sa: SemanticAnalyzer): void;
165
167
  }
166
168
  export class FunctionHeader extends TreeNode {
167
- get ident(): Token;
168
- get returnType(): FullySpecifiedType;
169
- semanticAnalyze(sa: SematicAnalyzer): void;
169
+ ident: Token;
170
+ returnType: FullySpecifiedType;
171
+ semanticAnalyze(sa: SemanticAnalyzer): void;
170
172
  codeGen(visitor: CodeGenVisitor): string;
171
173
  }
172
174
  export class FunctionParameterList extends TreeNode {
173
- get parameterInfoList(): IParamInfo[];
174
- get paramSig(): GalaceanDataType[];
175
+ parameterInfoList: IParamInfo[];
176
+ paramSig: GalaceanDataType[];
177
+ init(): void;
178
+ semanticAnalyze(sa: SemanticAnalyzer): void;
175
179
  codeGen(visitor: CodeGenVisitor): string;
176
180
  }
177
181
  export class ParameterDeclaration extends TreeNode {
178
- get typeQualifier(): TypeQualifier;
179
- private get parameterDeclarator();
180
- get typeInfo(): SymbolType;
181
- get ident(): BaseToken<number>;
182
- semanticAnalyze(sa: SematicAnalyzer): void;
182
+ typeQualifier: TypeQualifier | undefined;
183
+ typeInfo: SymbolType;
184
+ ident: Token;
185
+ init(): void;
186
+ semanticAnalyze(sa: SemanticAnalyzer): void;
183
187
  }
184
188
  export class ParameterDeclarator extends TreeNode {
185
- get ident(): Token;
186
- get typeInfo(): SymbolType;
189
+ ident: Token;
190
+ typeInfo: SymbolType;
191
+ semanticAnalyze(sa: SemanticAnalyzer): void;
187
192
  }
188
193
  export class SimpleStatement extends TreeNode {
189
194
  }
@@ -197,47 +202,48 @@ export declare namespace ASTNode {
197
202
  codeGen(visitor: CodeGenVisitor): string;
198
203
  }
199
204
  export class FunctionDefinition extends TreeNode {
200
- private _returnStatement?;
201
- get returnStatement(): ASTNode.JumpStatement | undefined;
202
- get protoType(): FunctionProtoType;
203
- get statements(): CompoundStatementNoScope;
205
+ returnStatement?: ASTNode.JumpStatement;
206
+ protoType: FunctionProtoType;
207
+ statements: CompoundStatementNoScope;
204
208
  init(): void;
205
- semanticAnalyze(sa: SematicAnalyzer): void;
209
+ semanticAnalyze(sa: SemanticAnalyzer): void;
206
210
  codeGen(visitor: CodeGenVisitor): string;
207
211
  }
208
212
  export class FunctionCall extends ExpressionAstNode {
209
- semanticAnalyze(sa: SematicAnalyzer): void;
213
+ semanticAnalyze(sa: SemanticAnalyzer): void;
210
214
  codeGen(visitor: CodeGenVisitor): string;
211
215
  }
212
216
  export class FunctionCallGeneric extends ExpressionAstNode {
213
217
  fnSymbol: FnSymbol | StructSymbol | undefined;
214
218
  init(): void;
215
- semanticAnalyze(sa: SematicAnalyzer): void;
219
+ semanticAnalyze(sa: SemanticAnalyzer): void;
216
220
  }
217
221
  export class FunctionCallParameterList extends TreeNode {
218
- get paramSig(): GalaceanDataType[] | undefined;
219
- get paramNodes(): AssignmentExpression[];
222
+ paramSig: GalaceanDataType[];
223
+ paramNodes: AssignmentExpression[];
224
+ init(): void;
225
+ semanticAnalyze(sa: SemanticAnalyzer): void;
220
226
  }
221
227
  export class PrecisionSpecifier extends TreeNode {
222
- semanticAnalyze(sa: SematicAnalyzer): void;
228
+ semanticAnalyze(sa: SemanticAnalyzer): void;
223
229
  }
224
230
  export class FunctionIdentifier extends TreeNode {
225
- get ident(): GalaceanDataType;
226
- get lexeme(): string;
227
- get isBuiltin(): boolean;
228
- semanticAnalyze(sa: SematicAnalyzer): void;
231
+ ident: GalaceanDataType;
232
+ lexeme: string;
233
+ isBuiltin: boolean;
234
+ semanticAnalyze(sa: SemanticAnalyzer): void;
229
235
  codeGen(visitor: CodeGenVisitor): string;
230
236
  }
231
237
  export class AssignmentExpression extends ExpressionAstNode {
232
- semanticAnalyze(sa: SematicAnalyzer): void;
238
+ semanticAnalyze(sa: SemanticAnalyzer): void;
233
239
  }
234
240
  export class AssignmentOperator extends TreeNode {
235
241
  }
236
242
  export class Expression extends ExpressionAstNode {
237
- semanticAnalyze(sa: SematicAnalyzer): void;
243
+ semanticAnalyze(sa: SemanticAnalyzer): void;
238
244
  }
239
245
  export class PrimaryExpression extends ExpressionAstNode {
240
- semanticAnalyze(sa: SematicAnalyzer): void;
246
+ semanticAnalyze(sa: SemanticAnalyzer): void;
241
247
  }
242
248
  export class PostfixExpression extends ExpressionAstNode {
243
249
  init(): void;
@@ -255,77 +261,87 @@ export declare namespace ASTNode {
255
261
  init(): void;
256
262
  }
257
263
  export class ShiftExpression extends ExpressionAstNode {
258
- semanticAnalyze(sa: SematicAnalyzer): void;
264
+ semanticAnalyze(sa: SemanticAnalyzer): void;
259
265
  }
260
266
  export class RelationalExpression extends ExpressionAstNode {
261
- semanticAnalyze(sa: SematicAnalyzer): void;
267
+ semanticAnalyze(sa: SemanticAnalyzer): void;
262
268
  }
263
269
  export class EqualityExpression extends ExpressionAstNode {
264
- semanticAnalyze(sa: SematicAnalyzer): void;
270
+ semanticAnalyze(sa: SemanticAnalyzer): void;
265
271
  }
266
272
  export class AndExpression extends ExpressionAstNode {
267
- semanticAnalyze(sa: SematicAnalyzer): void;
273
+ semanticAnalyze(sa: SemanticAnalyzer): void;
268
274
  }
269
275
  export class ExclusiveOrExpression extends ExpressionAstNode {
270
- semanticAnalyze(sa: SematicAnalyzer): void;
276
+ semanticAnalyze(sa: SemanticAnalyzer): void;
271
277
  }
272
278
  export class InclusiveOrExpression extends ExpressionAstNode {
273
- semanticAnalyze(sa: SematicAnalyzer): void;
279
+ semanticAnalyze(sa: SemanticAnalyzer): void;
274
280
  }
275
281
  export class LogicalAndExpression extends ExpressionAstNode {
276
- semanticAnalyze(sa: SematicAnalyzer): void;
282
+ semanticAnalyze(sa: SemanticAnalyzer): void;
277
283
  }
278
284
  export class LogicalXorExpression extends ExpressionAstNode {
279
- semanticAnalyze(sa: SematicAnalyzer): void;
285
+ semanticAnalyze(sa: SemanticAnalyzer): void;
280
286
  }
281
287
  export class LogicalOrExpression extends ExpressionAstNode {
282
- semanticAnalyze(sa: SematicAnalyzer): void;
288
+ semanticAnalyze(sa: SemanticAnalyzer): void;
283
289
  }
284
290
  export class ConditionalExpression extends ExpressionAstNode {
285
- semanticAnalyze(sa: SematicAnalyzer): void;
291
+ semanticAnalyze(sa: SemanticAnalyzer): void;
286
292
  }
287
293
  export class StructSpecifier extends TreeNode {
288
294
  ident?: Token;
289
- get propList(): StructProp[];
290
- semanticAnalyze(sa: SematicAnalyzer): void;
295
+ propList: StructProp[];
296
+ init(): void;
297
+ semanticAnalyze(sa: SemanticAnalyzer): void;
291
298
  }
292
299
  export class StructDeclarationList extends TreeNode {
293
- get propList(): StructProp[];
300
+ propList: StructProp[];
301
+ init(): void;
302
+ semanticAnalyze(sa: SemanticAnalyzer): void;
294
303
  }
295
304
  export class StructDeclaration extends TreeNode {
296
- get typeSpecifier(): TypeSpecifier;
297
- get declaratorList(): StructDeclaratorList;
298
- get propList(): StructProp[];
305
+ typeSpecifier: TypeSpecifier;
306
+ declaratorList: StructDeclaratorList;
307
+ props: StructProp[];
308
+ init(): void;
309
+ semanticAnalyze(sa: SemanticAnalyzer): void;
299
310
  }
300
311
  export class LayoutQualifier extends TreeNode {
301
- get index(): number;
312
+ index: number;
313
+ semanticAnalyze(sa: SemanticAnalyzer): void;
302
314
  }
303
315
  export class StructDeclaratorList extends TreeNode {
304
- get declaratorList(): StructDeclarator[];
316
+ declaratorList: StructDeclarator[];
317
+ init(): void;
318
+ semanticAnalyze(sa: SemanticAnalyzer): void;
305
319
  }
306
320
  export class StructDeclarator extends TreeNode {
307
- get ident(): Token;
308
- get arraySpecifier(): ArraySpecifier | undefined;
321
+ ident: Token;
322
+ arraySpecifier: ArraySpecifier | undefined;
323
+ init(): void;
324
+ semanticAnalyze(sa: SemanticAnalyzer): void;
309
325
  }
310
326
  export class VariableDeclaration extends TreeNode {
311
327
  type: FullySpecifiedType;
312
- semanticAnalyze(sa: SematicAnalyzer): void;
328
+ semanticAnalyze(sa: SemanticAnalyzer): void;
313
329
  codeGen(visitor: CodeGenVisitor): string;
314
330
  }
315
331
  export class VariableDeclarationList extends TreeNode {
316
332
  type: FullySpecifiedType;
317
- semanticAnalyze(sa: SematicAnalyzer): void;
333
+ semanticAnalyze(sa: SemanticAnalyzer): void;
318
334
  }
319
335
  export class VariableIdentifier extends TreeNode {
320
336
  symbolInfo: VarSymbol | BuiltinVariable | null;
321
- get lexeme(): string;
322
- get typeInfo(): GalaceanDataType;
323
- semanticAnalyze(sa: SematicAnalyzer): void;
337
+ lexeme: string;
338
+ typeInfo: GalaceanDataType;
339
+ semanticAnalyze(sa: SemanticAnalyzer): void;
324
340
  codeGen(visitor: CodeGenVisitor): string;
325
341
  }
326
342
  export class GLShaderProgram extends TreeNode {
327
343
  shaderData: ShaderData;
328
- semanticAnalyze(sa: SematicAnalyzer): void;
344
+ semanticAnalyze(sa: SemanticAnalyzer): void;
329
345
  }
330
346
  export {};
331
347
  }
@@ -1,2 +1,2 @@
1
1
  import { NodeChild } from "./types";
2
- export type TranslationRule<T = any> = (sa: SematicAnalyzer, ...tokens: NodeChild[]) => T;
2
+ export type TranslationRule<T = any> = (sa: SemanticAnalyzer, ...tokens: NodeChild[]) => T;