MaterialX 1.39.1
|
Syntax class for OSL (Open Shading Language) More...
#include <OslSyntax.h>
Public Member Functions | |
const string & | getOutputQualifier () const override |
Returns a type qualifier to be used when declaring types for output variables. More... | |
const string & | getConstantQualifier () const override |
Get the qualifier used when declaring constant variables. More... | |
const string & | getSourceFileExtension () const override |
Return the file extension used for source code files in this language. More... | |
Public Member Functions inherited from Syntax | |
void | registerTypeSyntax (TypeDesc type, TypeSyntaxPtr syntax) |
Register syntax handling for a data type. More... | |
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. More... | |
void | registerInvalidTokens (const StringMap &tokens) |
Register a set string replacements for disallowed tokens for a code generator when naming variables and functions. More... | |
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. More... | |
const TypeSyntax & | getTypeSyntax (const TypeDesc *type) const |
const vector< TypeSyntaxPtr > & | getTypeSyntaxes () const |
Returns an array of all registered type syntax objects. | |
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. More... | |
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. More... | |
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. More... | |
virtual const string & | getOutputQualifier () const |
Returns a type qualifier to be used when declaring types for output variables. More... | |
virtual const string & | getConstantQualifier () const =0 |
Get the qualifier used when declaring constant variables. More... | |
virtual const string & | getUniformQualifier () const |
Get the qualifier used when declaring uniform variables. More... | |
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 const string & | getSourceFileExtension () const =0 |
Return the file extension used for source code files in this language. More... | |
virtual string | getArrayTypeSuffix (TypeDesc, const Value &) const |
Return the array suffix to use for declaring an array type. More... | |
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. More... | |
string | getArrayVariableSuffix (const TypeDesc *type, const Value &value) const |
virtual bool | typeSupported (const TypeDesc *type) const |
Query if given type is suppored in the syntax. More... | |
virtual void | makeValidName (string &name) const |
Modify the given name string to remove any invalid characters or tokens. More... | |
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. More... | |
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. More... | |
Static Public Member Functions | |
static SyntaxPtr | create () |
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 () | |
Protected constructor. | |
Protected Attributes inherited from Syntax | |
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.