ShaderFile:
ShaderFile
::= ( Class | Procedure | Function | Main | Code )*
no referencesClass:
Class ::= '{$CLASS' ClassName ( '$EXTENDS' ClassName* )? '}' ( ClassProcedure | ClassFunction | ClassMain | Code )* '{$END}'
referenced by:
ShaderFile
Inherited:
Inherited
::= '{$INHERITED' ClassName? MethodName? Parameter* '$INLINE'? '}'
referenced by:
ClassFunction
ClassMain
ClassProcedure
Call:
Call ::= '{$CALL' MethodName Parameter* '}'
referenced by:
Code
Include:
Include ::= '{$INCLUDE' Filepath '}'
referenced by:
Code
Meta:
Meta ::= '{$META' ( TextQuoted* | '$VERSION' VersionNumber 'compatibility'? | '$EXTENSION' ExtensionName ExtensionValue | '$LAYOUT' LayoutValue ) '}'
referenced by:
Code
Property:
Property ::= '{$PROPERTY' PropertyName ( StaticName | Value )? '}'
referenced by:
Code
Static:
Static ::= '{$STATIC' StaticName Value? '}'
referenced by:
Code
Echo:
Echo ::= '{$ECHO' ( StaticName | PropertyName | TextQuoted ) '}'
referenced by:
Code
Varying:
Varying ::= '{$VARYING' glslTypeQuoted IdentifierQuoted '}'
referenced by:
Code
Uniform:
Uniform ::= '{$UNIFORM' glslTypeQuoted IdentifierQuoted '}'
referenced by:
Code
Var:
Var ::= '{$VAR' glslTypeQuoted IdentifierQuoted glslValue? '}'
referenced by:
Code
Const:
Const ::= '{$CONST' glslTypeQuoted IdentifierQuoted glslValue '}'
referenced by:
Code
Procedure:
Procedure
::= ProcedureHead Code '{$END}'
referenced by:
ShaderFile
ClassProcedure:
ClassProcedure
::= ProcedureHead ( Code | Inherited )* '{$END}'
referenced by:
Class
ProcedureHead:
ProcedureHead
::= '{$PROC' MethodName ( ParameterType ParameterName )* '$INLINE'? '}'
referenced by:
ClassProcedure
Procedure
ClassFunction:
ClassFunction
::= FunctionHead ( Code | Inherited )* '{$END}'
referenced by:
Class
Function:
Function ::= FunctionHead Code '{$END}'
referenced by:
ShaderFile
FunctionHead:
FunctionHead
::= '{$FUNC' ReturnType MethodName ( ParameterType ParameterName )* '$INLINE'? '}'
referenced by:
ClassFunction
Function
Main:
Main ::= '{$MAIN}' Code '{$END}'
referenced by:
ShaderFile
ClassMain:
ClassMain
::= '{$MAIN}' ( Code | Inherited )* '{$END}'
referenced by:
Class
If:
If ::= '{$IF' Expression '}' Code ( '{$ELIF' Expression '}' Code )* ( '{$ELSE}' Code )? '{$END}'
referenced by:
Code
Info:
Info ::= '{$INFO' TextQuoted '}'
referenced by:
Code
Warning:
Warning ::= '{$WARNING' TextQuoted '}'
referenced by:
Code
Error:
Error ::= '{$ERROR' TextQuoted '}'
referenced by:
Code
Throw:
Throw ::= '{$THROW' TextQuoted '}'
referenced by:
Code
Parameter:
Parameter
::= PropertyName
| StaticName
| glslCodeQuoted
referenced by:
Call
Inherited
Code:
Code ::= ( glslCode | Call | Include | Meta | Property | Static | Echo | Var | Varying | Uniform | Const | If | Info | Warning | Error | Throw )*
referenced by:
Class
ClassFunction
ClassMain
ClassProcedure
Function
If
Main
Procedure
ShaderFile
Expression:
Expression
::= PropertyName
| StaticName
| Value
| ( '$NOT' | '!' ) Expression
| '(' Expression ')'
| Expression ( '$OR' | '$AND' | '$XOR' | '+' | '-' | '*' | '/' | '=' | '<' | '>' | '<=' | '>=' | '<>' | '|' | '&' | '^' ) Expression
referenced by:
Expression
If
ClassName:
ClassName
::= Identifier
referenced by:
Class
Inherited
MethodName:
MethodName
::= Identifier
referenced by:
Call
FunctionHead
Inherited
ProcedureHead
PropertyName:
PropertyName
::= Identifier
referenced by:
Echo
Expression
Parameter
Property
StaticName:
StaticName
::= Identifier
referenced by:
Echo
Expression
Parameter
Property
Static
ExtensionName:
ExtensionName
::= IdentifierQuoted
referenced by:
Meta
ParameterName:
ParameterName
::= IdentifierQuoted
referenced by:
FunctionHead
ProcedureHead
Value:
Value ::= TextQuoted
referenced by:
Expression
Property
Static
glslValue:
glslValue
::= glslCodeQuoted
referenced by:
Const
Var
ExtensionValue:
ExtensionValue
::= glslCodeQuoted
referenced by:
Meta
LayoutValue:
LayoutValue
::= glslCodeQuoted
referenced by:
Meta
ReturnType:
ReturnType
::= glslTypeQuoted
referenced by:
FunctionHead
ParameterType:
ParameterType
::= glslTypeQuoted
referenced by:
FunctionHead
ProcedureHead
TextQuoted:
TextQuoted
::= ['] Text [']
referenced by:
Echo
Error
Info
Meta
Throw
Value
Warning
VersionNumber:
VersionNumber
::= [0-9]
referenced by:
Meta
IdentifierQuoted:
IdentifierQuoted
::= ['] Identifier [']
referenced by:
Const
ExtensionName
ParameterName
Uniform
Var
Varying
Identifier:
Identifier
::= [A-Za-z0-9_]
referenced by:
ClassName
IdentifierQuoted
MethodName
PropertyName
StaticName
Filepath:
Filepath ::= ['] [A-Za-z0-9\/_#x2D] [']
referenced by:
Include
glslCodeQuoted:
glslCodeQuoted
::= ['] glslCode [']
referenced by:
ExtensionValue
LayoutValue
Parameter
glslValue
glslTypeQuoted:
glslTypeQuoted
::= ['] glslType [']
referenced by:
Const
ParameterType
ReturnType
Uniform
Var
Varying
glslType:
glslType ::= int
| float
| double
| vec2
| vec3
| vec4
| ivec2
| ivec3
| ivec4
| dvec2
| dvec3
| dvec4
| mat2
| mat3
| mat4
| imat2
| imat3
| imat4
| dmat2
| dmat3
| dmat4
referenced by:
glslTypeQuoted
glslCode:
glslCode ::= [https://www.opengl.org/documentation/glsl/]
referenced by:
Code
glslCodeQuoted
... generated by Railroad Diagram Generator