Module glsl_lang::transpiler::glsl [−][src]
A GLSL450/GLSL460 transpiler that takes a syntax tree and writes it as a plain raw GLSL
String
.
Foreword
This module exports several functions that just transform a part of a syntax tree into its raw
GLSL String
representation.
Important note: this module – and actually, any
transpiler
module – is not responsible in optimizing the syntax tree nor semantically check its validity. This is done in other stages of the compilation process.
In order to achieve that purpose, you could:
- For each elements in the AST, return a
String
orCow<str>
. - Insert the string representation via a formatter.
The second solution is better because it lets the user handle the memory the way they want:
they might just use a dynamic buffer that implements Write
or simply pass a &mut
String
. It’s up to you.
How to use this module
First, head over to the ast
module. That module defines the AST items defined by GLSL. This
very module provides you with functions like show_*
taking the AST item and writing it to a
Write
object. You’re likely to be interested in show_translation_unit
to start with.
Structs
FormattingSettings | Formatting settings for the GLSL transpiler |
FormattingState | Formatting state of the GLSL transpiler |
Enums
IndentStyle | Indentation style of the output |
Whitespace | Formatter whitespace |
Functions
show_array_spec | Transpile an array_spec to GLSL |
show_arrayed_identifier | Transpile an arrayed_identifier to GLSL |
show_assignment_op | Transpile an assignment_op to GLSL |
show_binary_op | Transpile a binary_op to GLSL |
show_block | Transpile a block |
show_case_label | Transpile a case_label to GLSL |
show_compound_statement | Transpile a compound_statement to GLSL |
show_condition | Transpile a condition to GLSL |
show_declaration | Transpile a declaration to GLSL |
show_double | Transpile a double |
show_expr | Transpile an expr to GLSL |
show_expression_statement | Transpile an expression_statement to GLSL |
show_external_declaration | Transpile an external_declaration to GLSL |
show_float | Transpile a float |
show_for_init_statement | Transpile a for_init_statement to GLSL |
show_for_rest_statement | Transpile a for_rest_statement to GLSL |
show_fully_specified_type | Transpile a fully_specified_type to GLSL |
show_function_definition | Transpile a function_definition to GLSL |
show_function_identifier | Transpile a function_identifier to GLSL |
show_function_parameter_declaration | Transpile a function_parameter_declaration to GLSL |
show_function_parameter_declarator | Transpile a function_parameter_declarator to GLSL |
show_function_prototype | Transpile a function_prototype to GLSL |
show_identifier | Transpile an identifier to GLSL |
show_init_declarator_list | Transpile an init_declarator_list to GLSL |
show_initializer | Transpile an initializer to GLSL |
show_interpolation_qualifier | Transpile an interpolation_qualifier to GLSL |
show_iteration_statement | Transpile an iteration_statement to GLSL |
show_jump_statement | Transpile a jump_statement to GLSL |
show_layout_qualifier | Transpile a layout_qualifier to GLSL |
show_layout_qualifier_spec | Transpile a layout_qualifier_spec to GLSL |
show_path | Transpile a path |
show_precision_qualifier | Transpile a precision_qualifier to GLSL |
show_preprocessor | Transpile a preprocessor to GLSL |
show_preprocessor_define | Transpile a preprocessor_define to GLSL |
show_preprocessor_else | Transpile a preprocessor_else |
show_preprocessor_elseif | Transpile a preprocessor_elseif to GLSL |
show_preprocessor_endif | Transpile a preprocessor_endif |
show_preprocessor_error | Transpile a preprocessor_error to GLSL |
show_preprocessor_extension | Transpile a preprocessor_extension to GLSL |
show_preprocessor_if | Transpile a preprocessor_if to GLSL |
show_preprocessor_ifdef | Transpile a preprocessor_ifdef to GLSL |
show_preprocessor_ifndef | Transpile a preprocessor_ifndef to GLSL |
show_preprocessor_include | Transpile a preprocessor_include to GLSL |
show_preprocessor_line | Transpile a preprocessor_line to GLSL |
show_preprocessor_pragma | Transpile a preprocessor_pragma to GLSL |
show_preprocessor_undef | Transpile a preprocessor_undef to GLSL |
show_preprocessor_version | Transpile a preprocessor_version to GLSL |
show_selection_rest_statement | Transpile a selection_rest_statement to GLSL |
show_selection_statement | Transpile a selection_statement to GLSL |
show_single_declaration | Transpile a single_declaration to GLSL |
show_single_declaration_no_type | Transpile a single_declaration_no_type to GLSL |
show_statement | Transpile a statement to GLSL |
show_storage_qualifier | Transpile a storage_qualifier to GLSL |
show_struct | Transpile a struct to GLSL |
show_struct_field | Transpile a struct_field to GLSL |
show_struct_non_declaration | Transpile a struct_non_declaration to GLSL |
show_subroutine | Transpile a subroutine to GLSL |
show_switch_statement | Transpile a switch_statement to GLSL |
show_translation_unit | Transpile a translation_unit to GLSL |
show_type_name | Transpile a type_name to GLSL |
show_type_qualifier | Transpile a type_qualifier to GLSL |
show_type_qualifier_spec | Transpile a type_qualifier_spec to GLSL |
show_type_specifier | Transpile a type_specifier to GLSL |
show_type_specifier_non_array | Transpile a type_specifier_non_array to GLSL |
show_unary_op | Transpile an unary_op to GLSL |