Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

55 rader
2.8 KiB

  1. ShaderFile ::= (Class | Procedure | Function | Main | Code)*
  2. Class ::= '{$CLASS' ClassName ('$EXTENDS' ClassName*)? '}' (ClassProcedure | ClassFunction | ClassMain | Code)* '{$END}'
  3. Inherited ::= '{$INHERITED' (ClassName)? (MethodName)? (Parameter)* ('$INLINE')? '}'
  4. Call ::= '{$CALL' MethodName Parameter* '}'
  5. Include ::= '{$INCLUDE' Filepath '}'
  6. Meta ::= '{$META' (TextQuoted* | '$VERSION' VersionNumber 'compatibility'? | '$EXTENSION' ExtensionName ExtensionValue | '$LAYOUT' LayoutValue) '}'
  7. Property ::= '{$PROPERTY' PropertyName (StaticName | Value)? '}'
  8. Static ::= '{$STATIC' StaticName Value? '}'
  9. Echo ::= '{$ECHO' (StaticName | PropertyName | TextQuoted) '}'
  10. Varying ::= '{$VARYING' glslTypeQuoted IdentifierQuoted '}'
  11. Uniform ::= '{$UNIFORM' glslTypeQuoted IdentifierQuoted '}'
  12. Var ::= '{$VAR' glslTypeQuoted IdentifierQuoted glslValue? '}'
  13. Const ::= '{$CONST' glslTypeQuoted IdentifierQuoted glslValue '}'
  14. Procedure ::= ProcedureHead Code '{$END}'
  15. ClassProcedure ::= ProcedureHead (Code | Inherited)* '{$END}'
  16. ProcedureHead ::= '{$PROC' MethodName (ParameterType ParameterName)* ('$INLINE')? '}'
  17. ClassFunction ::= FunctionHead (Code | Inherited)* '{$END}'
  18. Function ::= FunctionHead Code '{$END}'
  19. FunctionHead ::= '{$FUNC' ReturnType MethodName (ParameterType ParameterName)* ('$INLINE')? '}'
  20. Main ::= '{$MAIN}' Code '{$END}'
  21. ClassMain ::= '{$MAIN}' (Code | Inherited)* '{$END}'
  22. If ::= '{$IF' Expression '}' Code ( '{$ELIF' Expression '}' Code )* ( '{$ELSE}' Code )? '{$END}'
  23. Info ::= '{$INFO' TextQuoted '}'
  24. Warning ::= '{$WARNING' TextQuoted '}'
  25. Error ::= '{$ERROR' TextQuoted '}'
  26. Throw ::= '{$THROW' TextQuoted '}'
  27. Parameter ::= (PropertyName | StaticName | glslCodeQuoted)
  28. Code ::= (glslCode | Call | Include | Meta | Property | Static | Echo | Var | Varying | Uniform | Const | If | Info | Warning | Error | Throw)*
  29. Expression ::= ( PropertyName | StaticName | Value | ( '$NOT' | '!' ) Expression | '(' Expression ')' | Expression ( '$OR' | '$AND' | '$XOR' | '+' | '-' | '*' | '/' | '=' | '<' | '>' | '<=' | '>=' | '<>' | '|' | '&' | '^' ) Expression )
  30. ClassName ::= Identifier
  31. MethodName ::= Identifier
  32. PropertyName ::= Identifier
  33. StaticName ::= Identifier
  34. ExtensionName ::= IdentifierQuoted
  35. ParameterName ::= IdentifierQuoted
  36. Value ::= TextQuoted
  37. glslValue ::= glslCodeQuoted
  38. ExtensionValue ::= glslCodeQuoted
  39. LayoutValue ::= glslCodeQuoted
  40. ReturnType ::= glslTypeQuoted
  41. ParameterType ::= glslTypeQuoted
  42. TextQuoted ::= ['] Text [']
  43. VersionNumber ::= [0-9]
  44. IdentifierQuoted ::= ['] Identifier [']
  45. Identifier ::= [A-Za-z0-9_]
  46. Filepath ::= ['] [A-Za-z0-9\/_-] [']
  47. glslCodeQuoted ::= ['] glslCode [']
  48. glslTypeQuoted ::= ['] glslType [']
  49. glslType ::= (int | float | double | vec2 | vec3 | vec4 | ivec2 | ivec3 | ivec4 | dvec2 | dvec3 | dvec4 | mat2 | mat3 | mat4 | imat2 | imat3 | imat4 | dmat2 | dmat3 | dmat4)
  50. glslCode ::= [https://www.opengl.org/documentation/glsl/]