![]() |
MaterialX 1.39.4
|
Syntax class for OSL (Open Shading Language) More...
#include <OslSyntax.h>
Public Member Functions | |
| OslSyntax (TypeSystemPtr typeSystem) | |
| const string & | getOutputQualifier () const override |
| Returns a type qualifier to be used when declaring types for output variables. | |
| const string & | getConstantQualifier () const override |
| Get the qualifier used when declaring constant variables. | |
| const string & | getSourceFileExtension () const override |
| Return the file extension used for source code files in this language. | |
Public Member Functions inherited from Syntax | |
| void | registerTypeSyntax (TypeDesc type, TypeSyntaxPtr syntax) |
| Register syntax handling for a data type. | |
| void | registerTypeSyntax (const TypeDesc *type, TypeSyntaxPtr syntax) |
| void | registerReservedWords (const StringSet &names) |
| Register names that are reserved words not to be used by a code generator when naming variables and functions. | |
| void | registerInvalidTokens (const StringMap &tokens) |
| Register a set string replacements for disallowed tokens for a code generator when naming variables and functions. | |
| const StringSet & | getReservedWords () const |
| Returns a set of names that are reserved words for this language syntax. | |
| const StringMap & | getInvalidTokens () const |
| Returns a mapping from disallowed tokens to replacement strings for this language syntax. | |
| const TypeSyntax & | getTypeSyntax (TypeDesc type) const |
| Returns the type syntax object for a named type. | |
| const TypeSyntax & | getTypeSyntax (const TypeDesc *type) const |
| const vector< TypeSyntaxPtr > & | getTypeSyntaxes () const |
| Returns an array of all registered type syntax objects. | |
| TypeDesc | getType (const string &name) const |
| Return a type description for the given type name. | |
| const string & | getTypeName (TypeDesc type) const |
| Returns the name syntax of the given type. | |
| const string & | getTypeName (const TypeDesc *type) const |
| virtual string | getOutputTypeName (TypeDesc type) const |
| Returns the type name in an output context. | |
| string | getOutputTypeName (const TypeDesc *type) const |
| const string & | getTypeAlias (TypeDesc type) const |
| Returns a type alias for the given data type. | |
| const string & | getTypeAlias (const TypeDesc *type) const |
| const string & | getTypeDefinition (TypeDesc type) const |
| Returns a custom type definition if needed for the given data type. | |
| const string & | getTypeDefinition (const TypeDesc *type) const |
| const string & | getDefaultValue (TypeDesc type, bool uniform=false) const |
| Returns the default value string for the given type. | |
| const string & | getDefaultValue (const TypeDesc *type, bool uniform=false) const |
| virtual string | getValue (TypeDesc type, const Value &value, bool uniform=false) const |
| Returns the value string for a given type and value object. | |
| string | getValue (const TypeDesc *type, const Value &value, bool uniform=false) const |
| virtual string | getValue (const ShaderPort *port, bool uniform=false) const |
| Returns the value string for a given shader port object. | |
| virtual const string & | getInputQualifier () const |
| Returns a type qualifier to be used when declaring types for input variables. | |
| virtual const string & | getUniformQualifier () const |
| Get the qualifier used when declaring uniform variables. | |
| virtual const string & | getNewline () const |
| Return the characters used for a newline. | |
| virtual const string & | getIndentation () const |
| Return the characters used for a single indentation level. | |
| virtual const string & | getStringQuote () const |
| Return the characters used to begin/end a string definition. | |
| virtual const string & | getIncludeStatement () const |
| Return the string pattern used for a file include statement. | |
| virtual const string & | getSingleLineComment () const |
| Return the characters used for single line comment. | |
| virtual const string & | getBeginMultiLineComment () const |
| Return the characters used to begin a multi line comments block. | |
| virtual const string & | getEndMultiLineComment () const |
| Return the characters used to end a multi line comments block. | |
| virtual string | getArrayTypeSuffix (TypeDesc, const Value &) const |
| Return the array suffix to use for declaring an array type. | |
| string | getArrayTypeSuffix (const TypeDesc *type, const Value &value) const |
| virtual string | getArrayVariableSuffix (TypeDesc type, const Value &value) const |
| Return the array suffix to use for declaring an array variable. | |
| string | getArrayVariableSuffix (const TypeDesc *type, const Value &value) const |
| virtual bool | typeSupported (const TypeDesc *type) const |
| Query if given type is supported in the syntax. | |
| virtual void | makeValidName (string &name) const |
| Modify the given name string to remove any invalid characters or tokens. | |
| virtual void | makeIdentifier (string &name, IdentifierMap &identifiers) const |
| Make sure the given name is a unique identifier, updating it if needed to make it unique. | |
| virtual string | getVariableName (const string &name, TypeDesc type, IdentifierMap &identifiers) const |
| Create a unique identifier for the given variable name and type. | |
| string | getVariableName (const string &name, const TypeDesc *type, IdentifierMap &identifiers) const |
| virtual bool | remapEnumeration (const string &value, TypeDesc type, const string &enumNames, std::pair< TypeDesc, ValuePtr > &result) const |
| Given an input specification attempt to remap this to an enumeration which is accepted by the shader generator. | |
| virtual StructTypeSyntaxPtr | createStructSyntax (const string &structTypeName, const string &defaultValue, const string &uniformDefaultValue, const string &typeAlias, const string &typeDefinition) const |
Static Public Member Functions | |
| static SyntaxPtr | create (TypeSystemPtr typeSystem) |
Static Public Attributes | |
| static const string | OUTPUT_QUALIFIER |
| static const string | SOURCE_FILE_EXTENSION |
| static const StringVec | VECTOR_MEMBERS |
| static const StringVec | VECTOR2_MEMBERS |
| static const StringVec | VECTOR4_MEMBERS |
| static const StringVec | COLOR4_MEMBERS |
Static Public Attributes inherited from Syntax | |
| static const string | NEWLINE |
| Constants with commonly used strings. | |
| static const string | SEMICOLON |
| static const string | COMMA |
Additional Inherited Members | |
Public Types inherited from Syntax | |
| enum | Punctuation { PARENTHESES , CURLY_BRACKETS , SQUARE_BRACKETS , DOUBLE_SQUARE_BRACKETS } |
| Punctuation types. | |
Protected Member Functions inherited from Syntax | |
| Syntax (TypeSystemPtr typeSystem) | |
| Protected constructor. | |
Protected Attributes inherited from Syntax | |
| TypeSystemPtr | _typeSystem |
| vector< TypeSyntaxPtr > | _typeSyntaxes |
| std::unordered_map< TypeDesc, size_t, TypeDesc::Hasher > | _typeSyntaxIndexByType |
| StringSet | _reservedWords |
| StringMap | _invalidTokens |
Static Protected Attributes inherited from Syntax | |
| static const string | INDENTATION |
| static const string | STRING_QUOTE |
| static const string | INCLUDE_STATEMENT |
| static const string | SINGLE_LINE_COMMENT |
| static const string | BEGIN_MULTI_LINE_COMMENT |
| static const string | END_MULTI_LINE_COMMENT |
| static const std::unordered_map< char, size_t > | CHANNELS_MAPPING |
Syntax class for OSL (Open Shading Language)
|
inlineoverridevirtual |
Get the qualifier used when declaring constant variables.
Derived classes must define this method.
Implements Syntax.
|
overridevirtual |
Returns a type qualifier to be used when declaring types for output variables.
Default implementation returns empty string and derived syntax classes should override this method.
Reimplemented from Syntax.
|
inlineoverridevirtual |
Return the file extension used for source code files in this language.
Implements Syntax.