namespace Ghost.DSL.ShaderCompiler; internal struct FunctionCallDeclaration { public Token name; public List? arguments; } internal struct PropertyDeclaration { public Token scope; public Token type; public Token name; public List? propertyInitializer; } internal struct ValueDeclaration { public Token name; public Token value; } internal struct HlslDeclaration { public List? tokens; } internal class PropertiesSyntax { public List? properties; public List? functionCalls; } internal class PipelineSyntax { public List? values; public List? functionCalls; } internal class PassSyntax { public Token name; public PipelineSyntax? localPipeline; public HlslDeclaration? hlsl; public List? defines; public List? includes; public List>? keywords; public List? functionCalls; } internal class DSLShaderSyntax { public Token name; public PropertiesSyntax? properties; public PipelineSyntax? pipeline; public List? passes; public List? functionCalls; }