diff --git a/.agents/skills/prism-regen/SKILL.md b/.agents/skills/prism-regen/SKILL.md index f96b9d197..ba263b9dd 100644 --- a/.agents/skills/prism-regen/SKILL.md +++ b/.agents/skills/prism-regen/SKILL.md @@ -11,12 +11,11 @@ its own — the generated C++ and HLSL must be rebuilt from it. ## The one thing that goes wrong -`generate_prism_parser.bat` does **not** regenerate code from `.prism` files. It -runs ANTLR over `Prism.g4` to rebuild the *parser*, which is only needed when -the grammar itself changes. Running it after a `.prism` edit appears to succeed -and produces no useful change — which is exactly why it's the trap. +Editing a `.prism` file does nothing until `prismc.exe` runs. The Prism parser +itself is not generated any more (the PEG grammar is compiled into `prismc`, +`sources/Prism/PrismGrammar.h`), so there is no separate parser step to run. -The actual generator is `prismc.exe`, built by the `Prism` project. +The generator is `prismc.exe`, built by the `Prism` project. ## Running the generator diff --git a/.claude/skills/prism-regen/SKILL.md b/.claude/skills/prism-regen/SKILL.md index f96b9d197..ba263b9dd 100644 --- a/.claude/skills/prism-regen/SKILL.md +++ b/.claude/skills/prism-regen/SKILL.md @@ -11,12 +11,11 @@ its own — the generated C++ and HLSL must be rebuilt from it. ## The one thing that goes wrong -`generate_prism_parser.bat` does **not** regenerate code from `.prism` files. It -runs ANTLR over `Prism.g4` to rebuild the *parser*, which is only needed when -the grammar itself changes. Running it after a `.prism` edit appears to succeed -and produces no useful change — which is exactly why it's the trap. +Editing a `.prism` file does nothing until `prismc.exe` runs. The Prism parser +itself is not generated any more (the PEG grammar is compiled into `prismc`, +`sources/Prism/PrismGrammar.h`), so there is no separate parser step to run. -The actual generator is `prismc.exe`, built by the `Prism` project. +The generator is `prismc.exe`, built by the `Prism` project. ## Running the generator diff --git a/AGENTS.md b/AGENTS.md index 7f1b27a39..c5c8449f1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,10 +19,14 @@ generate_project.bat ### Regenerate code from .prism files Tools → Regenerate Prism code in VS (Prism extension), or run `bin/profile/prismc.exe` from `sources/Prism/`. -### Regenerate the Prism parser (only after changing the Prism.g4 grammar) -```bat -generate_prism_parser.bat -``` +### Changing the Prism grammar +The grammar is a cpp-peglib (PEG) string in `sources/Prism/PrismGrammar.h`; there is no generated parser, so a grammar edit +is just a rebuild of the Prism project. `peglib.h` (vcpkg port `cpp-peglib`) is included only by the plain, non-module +`sources/Prism/PrismBridge.cpp` (a header unit of it leaves its static string constants null), which hands `Parsing.cpp` a +small AST (`PrismAst.h`). Keywords are contextual (`!IDCHAR`-guarded tokens), so where a keyword-led alternative follows an +`ID`-led one, order them keyword first (see `rt_stat`, `value_id`). All PSO kinds share one `pso_block`; which statements +each kind takes is checked in `Parsing.cpp` (`PsoKind`), and PSO/node parameters are typed by name in the grammar. +`prismc --check a.prism` parses files without validating or generating anything, for trying grammar changes. ### Build Open `projects/Spectrum.sln` in Visual Studio 2026. Three configurations: **Debug**, **Profile**, **Retail**. @@ -33,7 +37,7 @@ Executables output to `bin/Debug`, `bin/Profile`, `bin/Retail`. The working dire ### Layer Stack (bottom to top) ``` -Modules — C++ module wrappers for third-party libraries (assimp, cereal, antlr4, etc.) +Modules — C++ module wrappers for third-party libraries (assimp, cereal, etc.) Core — Engine foundation: math, serialization, threads, events, filesystem, profiling HAL — Hardware Abstraction Layer over D3D12: device, queues, resources, descriptors, shaders RenderSystem — High-level rendering: FrameGraph, materials, lighting, GUI, scene, assets @@ -46,13 +50,13 @@ Each layer has a `Defines.h` that chains upward (e.g. `RenderSystem/Defines.h` i The codebase uses **C++23 modules** (`.ixx` files) extensively. Each subsystem exposes a module interface — for example `HAL.Device.ixx` exports `module HAL:Device`. Headers (`.h`) are used for things that can't be modules (forced includes, third-party interop). ### Prism -Prism is the engine's declaration language: `.prism` files in `sources/Prism/defs/` declare shared GPU/CPU structs and their resource bindings, PSOs, raytracing PSOs, FrameGraph passes, pipelines, enums, constants and HLSL helper functions. `prismc` (an ANTLR4-based compiler, `sources/Prism/`) generates HLSL and C++ from them into `sources/HAL/autogen/`, `sources/RenderSystem/FrameGraph/autogen/` and `workdir/shaders/autogen/`. The language was called SIG (shader input groups) before it grew beyond bindings; the engine-side binding code keeps that name (`HAL/SIG/`, `SlotID`, `Table::`). +Prism is the engine's declaration language: `.prism` files in `sources/Prism/defs/` declare shared GPU/CPU structs and their resource bindings, PSOs, raytracing PSOs, FrameGraph passes, pipelines, enums, constants and HLSL helper functions. `prismc` (a cpp-peglib-based compiler, `sources/Prism/`) generates HLSL and C++ from them into `sources/HAL/autogen/`, `sources/RenderSystem/FrameGraph/autogen/` and `workdir/shaders/autogen/`. The language was called SIG (shader input groups) before it grew beyond bindings; the engine-side binding code keeps that name (`HAL/SIG/`, `SlotID`, `Table::`). ### FrameGraph The `RenderSystem/FrameGraph` subsystem manages render pass scheduling, automatic resource transitions, and async compute. Render passes declare their resource reads/writes; the FrameGraph resolves barriers and execution order. ### Modules Layer -`sources/Modules/` wraps third-party vcpkg libraries as C++ modules (`.ixx`). Each subfolder (`assimp/`, `cereal/`, `antlr4/`, etc.) contains an `.ixx` that re-exports the library through the module system. +`sources/Modules/` wraps third-party vcpkg libraries as C++ modules (`.ixx`). Each subfolder (`assimp/`, `cereal/`, etc.) contains an `.ixx` that re-exports the library through the module system. ## Key Files - `main.sharpmake.cs` — all project/solution configuration; edit this to add files, dependencies, or defines diff --git a/CLAUDE.md b/CLAUDE.md index 614e59b5c..43788b22b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -19,10 +19,14 @@ generate_project.bat ### Regenerate code from .prism files Tools → Regenerate Prism code in VS (Prism extension), or run `bin/profile/prismc.exe` from `sources/Prism/`. -### Regenerate the Prism parser (only after changing the Prism.g4 grammar) -```bat -generate_prism_parser.bat -``` +### Changing the Prism grammar +The grammar is a cpp-peglib (PEG) string in `sources/Prism/PrismGrammar.h`; there is no generated parser, so a grammar edit +is just a rebuild of the Prism project. `peglib.h` (vcpkg port `cpp-peglib`) is included only by the plain, non-module +`sources/Prism/PrismBridge.cpp` (a header unit of it leaves its static string constants null), which hands `Parsing.cpp` a +small AST (`PrismAst.h`). Keywords are contextual (`!IDCHAR`-guarded tokens), so where a keyword-led alternative follows an +`ID`-led one, order them keyword first (see `rt_stat`, `value_id`). All PSO kinds share one `pso_block`; which statements +each kind takes is checked in `Parsing.cpp` (`PsoKind`), and PSO/node parameters are typed by name in the grammar. +`prismc --check a.prism` parses files without validating or generating anything, for trying grammar changes. ### Build Open `projects/Spectrum.sln` in Visual Studio 2026. Three configurations: **Debug**, **Profile**, **Retail**. @@ -132,7 +136,7 @@ Get-Process MSBuild,VBCSCompiler -ErrorAction SilentlyContinue | Stop-Process -F ### Layer Stack (bottom to top) ``` -Modules — C++ module wrappers for third-party libraries (assimp, cereal, antlr4, etc.) +Modules — C++ module wrappers for third-party libraries (assimp, cereal, etc.) Core — Engine foundation: math, serialization, threads, events, filesystem, profiling HAL — Hardware Abstraction Layer over D3D12: device, queues, resources, descriptors, shaders RenderSystem — High-level rendering: FrameGraph, materials, lighting, GUI, scene, assets @@ -145,13 +149,13 @@ Each layer has a `Defines.h` that chains upward (e.g. `RenderSystem/Defines.h` i The codebase uses **C++23 modules** (`.ixx` files) extensively. Each subsystem exposes a module interface — for example `HAL.Device.ixx` exports `module HAL:Device`. Headers (`.h`) are used for things that can't be modules (forced includes, third-party interop). ### Prism -Prism is the engine's declaration language: `.prism` files in `sources/Prism/defs/` declare shared GPU/CPU structs and their resource bindings, PSOs, raytracing PSOs, FrameGraph passes, pipelines, enums, constants and HLSL helper functions. `prismc` (an ANTLR4-based compiler, `sources/Prism/`) generates HLSL and C++ from them into `sources/HAL/autogen/`, `sources/RenderSystem/FrameGraph/autogen/` and `workdir/shaders/autogen/`. The language was called SIG (shader input groups) before it grew beyond bindings; the engine-side binding code keeps that name (`HAL/SIG/`, `SlotID`, `Table::`). +Prism is the engine's declaration language: `.prism` files in `sources/Prism/defs/` declare shared GPU/CPU structs and their resource bindings, PSOs, raytracing PSOs, FrameGraph passes, pipelines, enums, constants and HLSL helper functions. `prismc` (a cpp-peglib-based compiler, `sources/Prism/`) generates HLSL and C++ from them into `sources/HAL/autogen/`, `sources/RenderSystem/FrameGraph/autogen/` and `workdir/shaders/autogen/`. The language was called SIG (shader input groups) before it grew beyond bindings; the engine-side binding code keeps that name (`HAL/SIG/`, `SlotID`, `Table::`). ### FrameGraph The `RenderSystem/FrameGraph` subsystem manages render pass scheduling, automatic resource transitions, and async compute. Render passes declare their resource reads/writes; the FrameGraph resolves barriers and execution order. ### Modules Layer -`sources/Modules/` wraps third-party vcpkg libraries as C++ modules (`.ixx`). Each subfolder (`assimp/`, `cereal/`, `antlr4/`, etc.) contains an `.ixx` that re-exports the library through the module system. +`sources/Modules/` wraps third-party vcpkg libraries as C++ modules (`.ixx`). Each subfolder (`assimp/`, `cereal/`, etc.) contains an `.ixx` that re-exports the library through the module system. ## Key Files - `main.sharpmake.cs` — all project/solution configuration; edit this to add files, dependencies, or defines diff --git a/README.md b/README.md index bd7dfcb75..5c1d7ef10 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ - Runtime-tunable properties (`Variable`) with an in-app debug panel - CPU/GPU profiling (scoped `PROFILE`/`PROFILE_GPU` markers) - FrameGraph live debugger: pass/resource inspector, GPU pass timeline with barrier visualization, and a pannable/zoomable resource preview (2D/array/3D/cube textures and buffers) -- Prism, a declaration language for GPU/CPU structs, bindings, PSOs and FrameGraph passes (ANTLR4-driven `prismc` generates HLSL + C++ from `.prism` files), with a Visual Studio extension for highlighting, live diagnostics and navigation +- Prism, a declaration language for GPU/CPU structs, bindings, PSOs and FrameGraph passes (the cpp-peglib-driven `prismc` generates HLSL + C++ from `.prism` files), with a Visual Studio extension for highlighting, live diagnostics and navigation ## Build system @@ -58,11 +58,11 @@ - C++23, built extensively around **C++ modules** (`.ixx` module interfaces) rather than classic headers - Layered module/include architecture (Modules → Core → HAL → RenderSystem → Spectrum), each layer force-including the one below via a chained `Defines.h` -- Third-party libraries (assimp, cereal, antlr4, DirectXTex, DirectStorage, freetype, jinja2cpp, ...) wrapped as C++ modules under `sources/Modules/` +- Third-party libraries (assimp, cereal, DirectXTex, DirectStorage, freetype, jinja2cpp, ...) wrapped as C++ modules under `sources/Modules/` ## Code generation -Large parts of the engine are generated rather than hand-written. The source of truth is **Prism**, the engine's declaration language: `.prism` files in `sources/Prism/defs/` declare GPU/CPU shared structs and their slot bindings, root layouts, graphics/compute/raytracing/work-graph PSOs, FrameGraph passes and pipelines, enums, constants and HLSL helper functions. The `prismc` compiler (`sources/Prism/`, ANTLR4 grammar `Prism.g4`, Jinja2 templates) validates them and generates, into `autogen/` directories that are checked in but never edited by hand: +Large parts of the engine are generated rather than hand-written. The source of truth is **Prism**, the engine's declaration language: `.prism` files in `sources/Prism/defs/` declare GPU/CPU shared structs and their slot bindings, root layouts, graphics/compute/raytracing/work-graph PSOs, FrameGraph passes and pipelines, enums, constants and HLSL helper functions. The `prismc` compiler (`sources/Prism/`, cpp-peglib grammar `PrismGrammar.h`, Jinja2 templates) validates them and generates, into `autogen/` directories that are checked in but never edited by hand: - **HAL** (`sources/HAL/autogen/`): binding tables and slots, root layouts, PSOs with permutation keys, raytracing PSOs, enums, constants - **FrameGraph** (`sources/RenderSystem/FrameGraph/autogen/`): per-pass headers with generated setup (resource creation/needs, enable conditions), pipelines, `pass_ids.h`, `resource_ids.h`, `pass_defaults.*`, context dependency tables - **HLSL** (`workdir/shaders/autogen/`): the matching shader-side structs, layouts, raytracing and work-graph node headers diff --git a/generate_prism_parser.bat b/generate_prism_parser.bat deleted file mode 100644 index 10a6a79f7..000000000 --- a/generate_prism_parser.bat +++ /dev/null @@ -1,4 +0,0 @@ -REM Regenerates the ANTLR parser from sources/Prism/Prism.g4 (only needed after a grammar change). -REM This does NOT regenerate code from .prism files: that is prismc.exe, or Tools > Regenerate Prism code in VS. -SET CLASSPATH=%CD%\sources\Prism\antlr-4.11.1-complete.jar;%CLASSPATH% -java org.antlr.v4.Tool sources/Prism/Prism.g4 -o sources/Prism/.antlr/ -listener -visitor diff --git a/generate_vsix.bat b/generate_vsix.bat new file mode 100644 index 000000000..d481824c7 --- /dev/null +++ b/generate_vsix.bat @@ -0,0 +1,39 @@ +@echo off +REM Builds the Prism language server (Profile) and packs it with the generated highlighting into +REM bin\editor\prism.vsix (double-click that file to install it). +REM +REM generate_vsix.bat build Prism, then bin\editor\prism.vsix +REM generate_vsix.bat --install-user also copy the highlighting-only extension into +REM %USERPROFILE%\.vs\Extensions\Prism (no VSIX needed) +REM +REM Needs Visual Studio with the "Visual Studio extension development" workload, Python, and +REM projects\spectrum.sln (generate_project.bat creates it). +setlocal +cd /d "%~dp0" + +if not exist projects\spectrum.sln ( + echo projects\spectrum.sln is missing -- run generate_project.bat first. + exit /b 1 +) + +set MSBUILD= +for /f "usebackq delims=" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe`) do set MSBUILD=%%i +if not defined MSBUILD ( + echo MSBuild not found. + exit /b 1 +) + +REM The extension carries a copy of bin\profile\prismc.exe as its language server, so build it first. +"%MSBUILD%" projects\spectrum.sln /t:Prism /p:Configuration=Profile-D3D12 /p:Platform=x64 /m -nodeReuse:false /nologo /v:minimal +set BUILD_RESULT=%ERRORLEVEL% + +REM A lingering MSBuild or compiler server locks files and blocks Visual Studio installers. +powershell -NoProfile -Command "Get-Process MSBuild,VBCSCompiler -ErrorAction SilentlyContinue | Stop-Process -Force" + +if not %BUILD_RESULT%==0 ( + echo Prism build failed. + exit /b %BUILD_RESULT% +) + +python sources\Prism\editor\gen_vs_extension.py %* +exit /b %ERRORLEVEL% diff --git a/main.sharpmake.cs b/main.sharpmake.cs index 7a1314d7a..e59bfbc3f 100644 --- a/main.sharpmake.cs +++ b/main.sharpmake.cs @@ -174,7 +174,6 @@ public Common() : base(typeof(CustomTarget)) SourceFilesExtensions.Add(".prism"); SourceFilesExtensions.Add(".hlsl"); SourceFilesExtensions.Add(".ixx"); - SourceFilesExtensions.Add(".g4"); SourceFilesExtensions.Add(".jinja"); SourceFilesCompileExtensions.Add(".ixx"); diff --git a/overview/Barriers.txt b/overview/Barriers.txt index 0f3d46567..a6b273752 100644 --- a/overview/Barriers.txt +++ b/overview/Barriers.txt @@ -273,7 +273,7 @@ Chain: No grammar change was needed: value_declaration already accepts option_block, and options are exposed to Jinja generically. Regenerate with bin/debug/prismc.exe -from sources/Prism — generate_prism_parser.bat only rebuilds the ANTLR grammar. +from sources/Prism. ================================================================================ diff --git a/overview/Prism.txt b/overview/Prism.txt index 627480a26..8e393c91e 100644 --- a/overview/Prism.txt +++ b/overview/Prism.txt @@ -31,7 +31,7 @@ groups. -------------------------------------------------------------------------------- sources/Prism/defs/*.prism the declarations (one file per subsystem) - sources/Prism/Prism.g4 ANTLR grammar + sources/Prism/PrismGrammar.h cpp-peglib (PEG) grammar, compiled into prismc sources/Prism/templates/ Jinja templates: cpp/ and hlsl/ output sources/Prism/Main.cpp generator: parse, validate, render templates sources/Prism/Validate.cpp every semantic check (and the option lists) @@ -88,8 +88,8 @@ window) and the exit code is 1. Many come with a suggestion: ddgi.prism(515,2): error: unknown option [SetupConditon] on PassNode 'DDGIProbeSelect'; did you mean 'SetupCondition'? -generate_prism_parser.bat is NOT a regeneration step — it rebuilds the ANTLR -parser from Prism.g4 and is only needed after a grammar change. +There is no parser-generation step: the PEG grammar is compiled into prismc, so +a grammar change is just a rebuild of the Prism project. -------------------------------------------------------------------------------- @@ -649,7 +649,7 @@ Install bin/editor/prism.vsix (built by `python sources/Prism/editor/gen_vs_extension.py`; needs the VS Installer's "Visual Studio extension development" workload). It provides: - - syntax highlighting (generated from Prism.g4: keywords, built-in types, + - syntax highlighting (generated from PrismGrammar.h: keywords, built-in types, formats and [Always]/[RecreateFlags] flags in the #define colour, options, user-declared names via the language server) with the C++ grammar inside HLSL bodies diff --git a/sources/Core/Windows/Defines.Platform.h b/sources/Core/Windows/Defines.Platform.h index bdd556051..288271d13 100644 --- a/sources/Core/Windows/Defines.Platform.h +++ b/sources/Core/Windows/Defines.Platform.h @@ -4,7 +4,7 @@ #include // assert_fail diagnostics (fopen/fprintf) // The #ifndef guard prevents a redefinition when Core_defs.h is also -// compiled into the same TU (the antlr generated header still imports it). +// compiled into the same TU. #ifndef CORE_ASSERT_FAIL_DEFINED #define CORE_ASSERT_FAIL_DEFINED namespace Core { diff --git a/sources/HAL/autogen/Constants.ixx b/sources/HAL/autogen/Constants.ixx index 9ddf26bda..ab0fd40c6 100644 --- a/sources/HAL/autogen/Constants.ixx +++ b/sources/HAL/autogen/Constants.ixx @@ -12,7 +12,7 @@ import Core; // never need a Table type at all) whenever a new raw const needs one. import :Autogen.Tables.Dev.TileRecord; -// One `const Name = value;` declaration (Prism.g4's const_definition) per line, +// One `const Name = value;` declaration (PrismGrammar.h's const_definition) per line, // in .prism declaration order -- a later constant's raw value may reference an // earlier one by its unqualified name (ordinary C++ initialization-order // rules), e.g. `const MaxDispatchEntries = `MaxLevels * 2048`;`. diff --git a/sources/Modules/antlr4/antlr4.h b/sources/Modules/antlr4/antlr4.h deleted file mode 100644 index d1d132536..000000000 --- a/sources/Modules/antlr4/antlr4.h +++ /dev/null @@ -1,2 +0,0 @@ -#define ANTLR4CPP_STATIC -#include diff --git a/sources/Modules/antlr4/antlr4.ixx b/sources/Modules/antlr4/antlr4.ixx deleted file mode 100644 index cb9dc7c93..000000000 --- a/sources/Modules/antlr4/antlr4.ixx +++ /dev/null @@ -1,3 +0,0 @@ -export module antlr4; - -export import "antlr4.h"; diff --git a/sources/Prism/.antlr/Prism.interp b/sources/Prism/.antlr/Prism.interp deleted file mode 100644 index afaa0a97a..000000000 --- a/sources/Prism/.antlr/Prism.interp +++ /dev/null @@ -1,318 +0,0 @@ -token literal names: -null -'const' -'::' -',' -'Sampler' -'define' -'rtv' -'blend' -'launch' -'entry' -'num_threads' -'max_dispatch_grid' -'input' -'compute' -'vertex' -'pixel' -'domain' -'hull' -'geometry' -'miss' -'closest_hit' -'any_hit' -'raygen' -'amplification' -'mesh' -'shader' -'ds' -'cull' -'depth_func' -'depth_write' -'conservative' -'depth_bias' -'depth_bias_clamp' -'slope_scaled_depth_bias' -'enable_depth' -'topology' -'enable_stencil' -'stencil_func' -'stencil_pass_op' -'stencil_read_mask' -'stencil_write_mask' -'recursion_depth' -'payload' -'per_material' -'local' -'||' -'&&' -'|' -'==' -'!=' -'>' -'<' -'>=' -'<=' -'+' -'-' -'/' -'%' -'^' -'!' -';' -':' -'.' -'=' -'(' -')' -'{' -'}' -'[' -']' -'true' -'false' -'log' -'layout' -'struct' -'namespace' -'ComputePSO' -'GraphicsPSO' -'RaytracePSO' -'WorkgraphPSO' -'Node' -'NodeOutput' -'RaytraceRaygen' -'RaytracePass' -'PassNode' -'PassView' -'Pipeline' -'slot' -'rt' -'RTV' -'DSV' -'root' -'enum' -null -null -null -null -null -null -null -'*' -null -'%{' -'}%' -null - -token symbolic names: -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -OR -AND -PIPE -EQ -NEQ -GT -LT -GTEQ -LTEQ -PLUS -MINUS -DIV -MOD -POW -NOT -SCOL -COLON -DOT -ASSIGN -OPAR -CPAR -OBRACE -CBRACE -OSBRACE -CSBRACE -TRUE -FALSE -LOG -LAYOUT -STRUCT -NAMESPACE -COMPUTE_PSO -GRAPHICS_PSO -RAYTRACE_PSO -WORKGRAPH_PSO -NODE -NODE_OUTPUT -RAYTRACE_RAYGEN -RAYTRACE_PASS -PASS -VIEW -PIPELINE -SLOT -RT -RTV -DSV -ROOTSIG -ENUM -ID -INT_SCALAR -FLOAT_SCALAR -STRING -RAWEXPR -COMMENT -SPACE -POINTER -FUNC_BODY -INSERT_START -INSERT_END -INSERT_BLOCK - -rule names: -parse -definition -namespace_definition -namespace_header -const_definition -bind_option -cond_expr -cond_term -call -call_arg -qualified_ref -member_ref -cond_op -flag_value_holder -raw_value -options_assign -option -option_block -array_count_id -array -value_declaration -slot_declaration -sampler_declaration -define_declaration -rtv_formats_declaration -blends_declaration -pointer -pso_param -class_no_template -type_with_template -inherit_id -name_id -option_id -owner_id -template_id -function_id -value_id -value_id_ignore -type_id -insert_block -shader_path -inherit -layout_stat -layout_block -layout_definition -table_stat -function_definition -function_params -function_semantic -table_block -table_definition -rt_color_declaration -rt_ds_declaration -rt_stat -rt_block -rt_definition -array_value_holder -array_value_ids -root_sig -shader -compute_pso_stat -compute_pso_block -compute_pso_definition -graphics_pso_stat -graphics_pso_block -graphics_pso_definition -rtx_pso_stat -rtx_pso_block -rtx_pso_definition -node_param_id -node_param -node_output_decl -node_stat -node_block -node_definition -workgraph_pso_stat -workgraph_pso_block -workgraph_pso_definition -rtx_pass_stat -rtx_pass_block -rtx_pass_definition -rtx_raygen_stat -rtx_raygen_block -rtx_raygen_definition -view_declaration -view_stat -view_block -view_definition -pass_definition -pipeline_stat -pipeline_block -pipeline_definition -enum_value_declaration -enum_stat -enum_block -enum_definition -shader_type -pso_param_id -bool_type - - -atn: -[4, 1, 104, 904, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 1, 0, 5, 0, 200, 8, 0, 10, 0, 12, 0, 203, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 223, 8, 1, 1, 2, 1, 2, 1, 2, 5, 2, 228, 8, 2, 10, 2, 12, 2, 231, 9, 2, 1, 2, 1, 2, 1, 3, 5, 3, 236, 8, 3, 10, 3, 12, 3, 239, 9, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 3, 5, 252, 8, 5, 1, 5, 1, 5, 1, 5, 4, 5, 257, 8, 5, 11, 5, 12, 5, 258, 1, 5, 1, 5, 3, 5, 263, 8, 5, 1, 6, 4, 6, 266, 8, 6, 11, 6, 12, 6, 267, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 276, 8, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 283, 8, 8, 10, 8, 12, 8, 286, 9, 8, 1, 8, 1, 8, 1, 9, 4, 9, 291, 8, 9, 11, 9, 12, 9, 292, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 3, 16, 314, 8, 16, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 320, 8, 17, 10, 17, 12, 17, 323, 9, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 331, 8, 19, 1, 19, 1, 19, 1, 20, 5, 20, 336, 8, 20, 10, 20, 12, 20, 339, 9, 20, 1, 20, 1, 20, 1, 20, 3, 20, 344, 8, 20, 1, 20, 1, 20, 3, 20, 348, 8, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 5, 23, 363, 8, 23, 10, 23, 12, 23, 366, 9, 23, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 372, 8, 23, 1, 23, 1, 23, 1, 24, 5, 24, 377, 8, 24, 10, 24, 12, 24, 380, 9, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 5, 25, 388, 8, 25, 10, 25, 12, 25, 391, 9, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 5, 27, 401, 8, 27, 10, 27, 12, 27, 404, 9, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 416, 8, 29, 10, 29, 12, 29, 419, 9, 29, 1, 29, 3, 29, 422, 8, 29, 1, 29, 3, 29, 425, 8, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 3, 35, 440, 8, 35, 1, 35, 1, 35, 5, 35, 444, 8, 35, 10, 35, 12, 35, 447, 9, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 458, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 464, 8, 37, 1, 38, 1, 38, 1, 39, 1, 39, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 5, 41, 476, 8, 41, 10, 41, 12, 41, 479, 9, 41, 1, 42, 1, 42, 1, 42, 3, 42, 484, 8, 42, 1, 43, 5, 43, 487, 8, 43, 10, 43, 12, 43, 490, 9, 43, 1, 44, 1, 44, 1, 44, 3, 44, 495, 8, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 3, 45, 505, 8, 45, 1, 46, 5, 46, 508, 8, 46, 10, 46, 12, 46, 511, 9, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 519, 8, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 5, 47, 528, 8, 47, 10, 47, 12, 47, 531, 9, 47, 1, 48, 1, 48, 1, 48, 1, 49, 5, 49, 537, 8, 49, 10, 49, 12, 49, 540, 9, 49, 1, 50, 5, 50, 543, 8, 50, 10, 50, 12, 50, 546, 9, 50, 1, 50, 1, 50, 1, 50, 3, 50, 551, 8, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 3, 53, 568, 8, 53, 1, 54, 5, 54, 571, 8, 54, 10, 54, 12, 54, 574, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 588, 8, 57, 10, 57, 12, 57, 591, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 5, 59, 601, 8, 59, 10, 59, 12, 59, 604, 9, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 3, 60, 615, 8, 60, 1, 61, 5, 61, 618, 8, 61, 10, 61, 12, 61, 621, 9, 61, 1, 62, 5, 62, 624, 8, 62, 10, 62, 12, 62, 627, 9, 62, 1, 62, 1, 62, 1, 62, 3, 62, 632, 8, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 3, 63, 645, 8, 63, 1, 64, 5, 64, 648, 8, 64, 10, 64, 12, 64, 651, 9, 64, 1, 65, 5, 65, 654, 8, 65, 10, 65, 12, 65, 657, 9, 65, 1, 65, 1, 65, 1, 65, 3, 65, 662, 8, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 3, 66, 670, 8, 66, 1, 67, 5, 67, 673, 8, 67, 10, 67, 12, 67, 676, 9, 67, 1, 68, 1, 68, 1, 68, 3, 68, 681, 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 5, 71, 695, 8, 71, 10, 71, 12, 71, 698, 9, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 3, 72, 708, 8, 72, 1, 73, 5, 73, 711, 8, 73, 10, 73, 12, 73, 714, 9, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 3, 75, 727, 8, 75, 1, 76, 5, 76, 730, 8, 76, 10, 76, 12, 76, 733, 9, 76, 1, 77, 5, 77, 736, 8, 77, 10, 77, 12, 77, 739, 9, 77, 1, 77, 1, 77, 1, 77, 3, 77, 744, 8, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 3, 78, 753, 8, 78, 1, 79, 5, 79, 756, 8, 79, 10, 79, 12, 79, 759, 9, 79, 1, 80, 5, 80, 762, 8, 80, 10, 80, 12, 80, 765, 9, 80, 1, 80, 1, 80, 1, 80, 3, 80, 770, 8, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 3, 81, 778, 8, 81, 1, 82, 5, 82, 781, 8, 82, 10, 82, 12, 82, 784, 9, 82, 1, 83, 5, 83, 787, 8, 83, 10, 83, 12, 83, 790, 9, 83, 1, 83, 1, 83, 1, 83, 3, 83, 795, 8, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 5, 84, 802, 8, 84, 10, 84, 12, 84, 805, 9, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 3, 85, 813, 8, 85, 1, 86, 5, 86, 816, 8, 86, 10, 86, 12, 86, 819, 9, 86, 1, 87, 5, 87, 822, 8, 87, 10, 87, 12, 87, 825, 9, 87, 1, 87, 1, 87, 1, 87, 3, 87, 830, 8, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 5, 88, 837, 8, 88, 10, 88, 12, 88, 840, 9, 88, 1, 88, 1, 88, 1, 88, 3, 88, 845, 8, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 5, 89, 852, 8, 89, 10, 89, 12, 89, 855, 9, 89, 1, 89, 1, 89, 1, 89, 1, 89, 3, 89, 861, 8, 89, 1, 90, 5, 90, 864, 8, 90, 10, 90, 12, 90, 867, 9, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 3, 92, 878, 8, 92, 1, 92, 1, 92, 1, 93, 1, 93, 3, 93, 884, 8, 93, 1, 94, 5, 94, 887, 8, 94, 10, 94, 12, 94, 890, 9, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 19, 237, 337, 364, 378, 389, 402, 477, 509, 544, 602, 625, 655, 696, 737, 763, 788, 803, 823, 838, 0, 99, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 0, 7, 5, 0, 45, 46, 48, 57, 59, 59, 64, 65, 100, 100, 2, 0, 93, 93, 96, 96, 1, 0, 64, 65, 1, 0, 8, 12, 1, 0, 13, 25, 1, 0, 26, 44, 1, 0, 70, 71, 930, 0, 201, 1, 0, 0, 0, 2, 222, 1, 0, 0, 0, 4, 224, 1, 0, 0, 0, 6, 237, 1, 0, 0, 0, 8, 243, 1, 0, 0, 0, 10, 262, 1, 0, 0, 0, 12, 265, 1, 0, 0, 0, 14, 275, 1, 0, 0, 0, 16, 277, 1, 0, 0, 0, 18, 290, 1, 0, 0, 0, 20, 294, 1, 0, 0, 0, 22, 298, 1, 0, 0, 0, 24, 302, 1, 0, 0, 0, 26, 304, 1, 0, 0, 0, 28, 306, 1, 0, 0, 0, 30, 308, 1, 0, 0, 0, 32, 311, 1, 0, 0, 0, 34, 315, 1, 0, 0, 0, 36, 326, 1, 0, 0, 0, 38, 328, 1, 0, 0, 0, 40, 337, 1, 0, 0, 0, 42, 351, 1, 0, 0, 0, 44, 355, 1, 0, 0, 0, 46, 364, 1, 0, 0, 0, 48, 378, 1, 0, 0, 0, 50, 389, 1, 0, 0, 0, 52, 397, 1, 0, 0, 0, 54, 402, 1, 0, 0, 0, 56, 410, 1, 0, 0, 0, 58, 412, 1, 0, 0, 0, 60, 426, 1, 0, 0, 0, 62, 428, 1, 0, 0, 0, 64, 430, 1, 0, 0, 0, 66, 432, 1, 0, 0, 0, 68, 434, 1, 0, 0, 0, 70, 436, 1, 0, 0, 0, 72, 457, 1, 0, 0, 0, 74, 463, 1, 0, 0, 0, 76, 465, 1, 0, 0, 0, 78, 467, 1, 0, 0, 0, 80, 469, 1, 0, 0, 0, 82, 471, 1, 0, 0, 0, 84, 483, 1, 0, 0, 0, 86, 488, 1, 0, 0, 0, 88, 491, 1, 0, 0, 0, 90, 504, 1, 0, 0, 0, 92, 509, 1, 0, 0, 0, 94, 529, 1, 0, 0, 0, 96, 532, 1, 0, 0, 0, 98, 538, 1, 0, 0, 0, 100, 544, 1, 0, 0, 0, 102, 556, 1, 0, 0, 0, 104, 560, 1, 0, 0, 0, 106, 567, 1, 0, 0, 0, 108, 572, 1, 0, 0, 0, 110, 575, 1, 0, 0, 0, 112, 581, 1, 0, 0, 0, 114, 583, 1, 0, 0, 0, 116, 594, 1, 0, 0, 0, 118, 602, 1, 0, 0, 0, 120, 614, 1, 0, 0, 0, 122, 619, 1, 0, 0, 0, 124, 625, 1, 0, 0, 0, 126, 644, 1, 0, 0, 0, 128, 649, 1, 0, 0, 0, 130, 655, 1, 0, 0, 0, 132, 669, 1, 0, 0, 0, 134, 674, 1, 0, 0, 0, 136, 677, 1, 0, 0, 0, 138, 686, 1, 0, 0, 0, 140, 688, 1, 0, 0, 0, 142, 696, 1, 0, 0, 0, 144, 707, 1, 0, 0, 0, 146, 712, 1, 0, 0, 0, 148, 715, 1, 0, 0, 0, 150, 726, 1, 0, 0, 0, 152, 731, 1, 0, 0, 0, 154, 737, 1, 0, 0, 0, 156, 752, 1, 0, 0, 0, 158, 757, 1, 0, 0, 0, 160, 763, 1, 0, 0, 0, 162, 777, 1, 0, 0, 0, 164, 782, 1, 0, 0, 0, 166, 788, 1, 0, 0, 0, 168, 803, 1, 0, 0, 0, 170, 812, 1, 0, 0, 0, 172, 817, 1, 0, 0, 0, 174, 823, 1, 0, 0, 0, 176, 838, 1, 0, 0, 0, 178, 860, 1, 0, 0, 0, 180, 865, 1, 0, 0, 0, 182, 868, 1, 0, 0, 0, 184, 874, 1, 0, 0, 0, 186, 883, 1, 0, 0, 0, 188, 888, 1, 0, 0, 0, 190, 891, 1, 0, 0, 0, 192, 897, 1, 0, 0, 0, 194, 899, 1, 0, 0, 0, 196, 901, 1, 0, 0, 0, 198, 200, 3, 2, 1, 0, 199, 198, 1, 0, 0, 0, 200, 203, 1, 0, 0, 0, 201, 199, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 204, 1, 0, 0, 0, 203, 201, 1, 0, 0, 0, 204, 205, 5, 0, 0, 1, 205, 1, 1, 0, 0, 0, 206, 223, 3, 88, 44, 0, 207, 223, 3, 100, 50, 0, 208, 223, 3, 110, 55, 0, 209, 223, 3, 154, 77, 0, 210, 223, 3, 124, 62, 0, 211, 223, 3, 130, 65, 0, 212, 223, 3, 136, 68, 0, 213, 223, 3, 160, 80, 0, 214, 223, 3, 166, 83, 0, 215, 223, 3, 176, 88, 0, 216, 223, 3, 174, 87, 0, 217, 223, 3, 182, 91, 0, 218, 223, 3, 190, 95, 0, 219, 223, 3, 8, 4, 0, 220, 223, 3, 4, 2, 0, 221, 223, 5, 98, 0, 0, 222, 206, 1, 0, 0, 0, 222, 207, 1, 0, 0, 0, 222, 208, 1, 0, 0, 0, 222, 209, 1, 0, 0, 0, 222, 210, 1, 0, 0, 0, 222, 211, 1, 0, 0, 0, 222, 212, 1, 0, 0, 0, 222, 213, 1, 0, 0, 0, 222, 214, 1, 0, 0, 0, 222, 215, 1, 0, 0, 0, 222, 216, 1, 0, 0, 0, 222, 217, 1, 0, 0, 0, 222, 218, 1, 0, 0, 0, 222, 219, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 222, 221, 1, 0, 0, 0, 223, 3, 1, 0, 0, 0, 224, 225, 3, 6, 3, 0, 225, 229, 5, 66, 0, 0, 226, 228, 3, 2, 1, 0, 227, 226, 1, 0, 0, 0, 228, 231, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 232, 1, 0, 0, 0, 231, 229, 1, 0, 0, 0, 232, 233, 5, 67, 0, 0, 233, 5, 1, 0, 0, 0, 234, 236, 3, 34, 17, 0, 235, 234, 1, 0, 0, 0, 236, 239, 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 238, 240, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 240, 241, 5, 75, 0, 0, 241, 242, 3, 62, 31, 0, 242, 7, 1, 0, 0, 0, 243, 244, 5, 1, 0, 0, 244, 245, 3, 62, 31, 0, 245, 246, 3, 30, 15, 0, 246, 247, 5, 60, 0, 0, 247, 9, 1, 0, 0, 0, 248, 249, 3, 66, 33, 0, 249, 250, 5, 2, 0, 0, 250, 252, 1, 0, 0, 0, 251, 248, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0, 253, 256, 3, 26, 13, 0, 254, 255, 5, 47, 0, 0, 255, 257, 3, 26, 13, 0, 256, 254, 1, 0, 0, 0, 257, 258, 1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 263, 1, 0, 0, 0, 260, 263, 3, 28, 14, 0, 261, 263, 3, 12, 6, 0, 262, 251, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 261, 1, 0, 0, 0, 263, 11, 1, 0, 0, 0, 264, 266, 3, 14, 7, 0, 265, 264, 1, 0, 0, 0, 266, 267, 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 13, 1, 0, 0, 0, 269, 276, 3, 20, 10, 0, 270, 276, 3, 70, 35, 0, 271, 276, 3, 16, 8, 0, 272, 276, 3, 22, 11, 0, 273, 276, 3, 72, 36, 0, 274, 276, 3, 24, 12, 0, 275, 269, 1, 0, 0, 0, 275, 270, 1, 0, 0, 0, 275, 271, 1, 0, 0, 0, 275, 272, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 275, 274, 1, 0, 0, 0, 276, 15, 1, 0, 0, 0, 277, 278, 5, 93, 0, 0, 278, 279, 5, 64, 0, 0, 279, 284, 3, 18, 9, 0, 280, 281, 5, 3, 0, 0, 281, 283, 3, 18, 9, 0, 282, 280, 1, 0, 0, 0, 283, 286, 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 287, 1, 0, 0, 0, 286, 284, 1, 0, 0, 0, 287, 288, 5, 65, 0, 0, 288, 17, 1, 0, 0, 0, 289, 291, 3, 14, 7, 0, 290, 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 293, 1, 0, 0, 0, 293, 19, 1, 0, 0, 0, 294, 295, 3, 66, 33, 0, 295, 296, 5, 2, 0, 0, 296, 297, 3, 72, 36, 0, 297, 21, 1, 0, 0, 0, 298, 299, 3, 62, 31, 0, 299, 300, 5, 62, 0, 0, 300, 301, 3, 62, 31, 0, 301, 23, 1, 0, 0, 0, 302, 303, 7, 0, 0, 0, 303, 25, 1, 0, 0, 0, 304, 305, 3, 72, 36, 0, 305, 27, 1, 0, 0, 0, 306, 307, 5, 97, 0, 0, 307, 29, 1, 0, 0, 0, 308, 309, 5, 63, 0, 0, 309, 310, 3, 10, 5, 0, 310, 31, 1, 0, 0, 0, 311, 313, 3, 62, 31, 0, 312, 314, 3, 30, 15, 0, 313, 312, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 33, 1, 0, 0, 0, 315, 316, 5, 68, 0, 0, 316, 321, 3, 32, 16, 0, 317, 318, 5, 3, 0, 0, 318, 320, 3, 32, 16, 0, 319, 317, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 324, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 325, 5, 69, 0, 0, 325, 35, 1, 0, 0, 0, 326, 327, 5, 94, 0, 0, 327, 37, 1, 0, 0, 0, 328, 330, 5, 68, 0, 0, 329, 331, 3, 36, 18, 0, 330, 329, 1, 0, 0, 0, 330, 331, 1, 0, 0, 0, 331, 332, 1, 0, 0, 0, 332, 333, 5, 69, 0, 0, 333, 39, 1, 0, 0, 0, 334, 336, 3, 34, 17, 0, 335, 334, 1, 0, 0, 0, 336, 339, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 337, 335, 1, 0, 0, 0, 338, 340, 1, 0, 0, 0, 339, 337, 1, 0, 0, 0, 340, 341, 3, 76, 38, 0, 341, 343, 3, 62, 31, 0, 342, 344, 3, 38, 19, 0, 343, 342, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 347, 1, 0, 0, 0, 345, 346, 5, 63, 0, 0, 346, 348, 3, 72, 36, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 349, 1, 0, 0, 0, 349, 350, 5, 60, 0, 0, 350, 41, 1, 0, 0, 0, 351, 352, 5, 87, 0, 0, 352, 353, 3, 62, 31, 0, 353, 354, 5, 60, 0, 0, 354, 43, 1, 0, 0, 0, 355, 356, 5, 4, 0, 0, 356, 357, 3, 62, 31, 0, 357, 358, 5, 63, 0, 0, 358, 359, 3, 72, 36, 0, 359, 360, 5, 60, 0, 0, 360, 45, 1, 0, 0, 0, 361, 363, 3, 34, 17, 0, 362, 361, 1, 0, 0, 0, 363, 366, 1, 0, 0, 0, 364, 365, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 365, 367, 1, 0, 0, 0, 366, 364, 1, 0, 0, 0, 367, 368, 5, 5, 0, 0, 368, 371, 3, 62, 31, 0, 369, 370, 5, 63, 0, 0, 370, 372, 3, 114, 57, 0, 371, 369, 1, 0, 0, 0, 371, 372, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 374, 5, 60, 0, 0, 374, 47, 1, 0, 0, 0, 375, 377, 3, 34, 17, 0, 376, 375, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 379, 381, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 381, 382, 5, 6, 0, 0, 382, 383, 5, 63, 0, 0, 383, 384, 3, 114, 57, 0, 384, 385, 5, 60, 0, 0, 385, 49, 1, 0, 0, 0, 386, 388, 3, 34, 17, 0, 387, 386, 1, 0, 0, 0, 388, 391, 1, 0, 0, 0, 389, 390, 1, 0, 0, 0, 389, 387, 1, 0, 0, 0, 390, 392, 1, 0, 0, 0, 391, 389, 1, 0, 0, 0, 392, 393, 5, 7, 0, 0, 393, 394, 5, 63, 0, 0, 394, 395, 3, 114, 57, 0, 395, 396, 5, 60, 0, 0, 396, 51, 1, 0, 0, 0, 397, 398, 5, 100, 0, 0, 398, 53, 1, 0, 0, 0, 399, 401, 3, 34, 17, 0, 400, 399, 1, 0, 0, 0, 401, 404, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 402, 400, 1, 0, 0, 0, 403, 405, 1, 0, 0, 0, 404, 402, 1, 0, 0, 0, 405, 406, 3, 194, 97, 0, 406, 407, 5, 63, 0, 0, 407, 408, 3, 72, 36, 0, 408, 409, 5, 60, 0, 0, 409, 55, 1, 0, 0, 0, 410, 411, 5, 93, 0, 0, 411, 57, 1, 0, 0, 0, 412, 421, 3, 56, 28, 0, 413, 417, 5, 51, 0, 0, 414, 416, 3, 68, 34, 0, 415, 414, 1, 0, 0, 0, 416, 419, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 420, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 420, 422, 5, 50, 0, 0, 421, 413, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422, 424, 1, 0, 0, 0, 423, 425, 3, 52, 26, 0, 424, 423, 1, 0, 0, 0, 424, 425, 1, 0, 0, 0, 425, 59, 1, 0, 0, 0, 426, 427, 5, 93, 0, 0, 427, 61, 1, 0, 0, 0, 428, 429, 5, 93, 0, 0, 429, 63, 1, 0, 0, 0, 430, 431, 5, 93, 0, 0, 431, 65, 1, 0, 0, 0, 432, 433, 5, 93, 0, 0, 433, 67, 1, 0, 0, 0, 434, 435, 5, 93, 0, 0, 435, 69, 1, 0, 0, 0, 436, 437, 5, 93, 0, 0, 437, 439, 5, 64, 0, 0, 438, 440, 3, 74, 37, 0, 439, 438, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 445, 1, 0, 0, 0, 441, 442, 5, 3, 0, 0, 442, 444, 3, 74, 37, 0, 443, 441, 1, 0, 0, 0, 444, 447, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 448, 1, 0, 0, 0, 447, 445, 1, 0, 0, 0, 448, 449, 5, 65, 0, 0, 449, 71, 1, 0, 0, 0, 450, 458, 3, 192, 96, 0, 451, 458, 5, 93, 0, 0, 452, 458, 5, 94, 0, 0, 453, 458, 5, 95, 0, 0, 454, 458, 3, 196, 98, 0, 455, 458, 3, 70, 35, 0, 456, 458, 3, 114, 57, 0, 457, 450, 1, 0, 0, 0, 457, 451, 1, 0, 0, 0, 457, 452, 1, 0, 0, 0, 457, 453, 1, 0, 0, 0, 457, 454, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 457, 456, 1, 0, 0, 0, 458, 73, 1, 0, 0, 0, 459, 464, 5, 93, 0, 0, 460, 464, 5, 94, 0, 0, 461, 464, 5, 95, 0, 0, 462, 464, 3, 196, 98, 0, 463, 459, 1, 0, 0, 0, 463, 460, 1, 0, 0, 0, 463, 461, 1, 0, 0, 0, 463, 462, 1, 0, 0, 0, 464, 75, 1, 0, 0, 0, 465, 466, 3, 58, 29, 0, 466, 77, 1, 0, 0, 0, 467, 468, 5, 104, 0, 0, 468, 79, 1, 0, 0, 0, 469, 470, 7, 1, 0, 0, 470, 81, 1, 0, 0, 0, 471, 472, 5, 61, 0, 0, 472, 477, 3, 60, 30, 0, 473, 474, 5, 3, 0, 0, 474, 476, 3, 60, 30, 0, 475, 473, 1, 0, 0, 0, 476, 479, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 478, 83, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 480, 484, 3, 42, 21, 0, 481, 484, 3, 44, 22, 0, 482, 484, 5, 98, 0, 0, 483, 480, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 483, 482, 1, 0, 0, 0, 484, 85, 1, 0, 0, 0, 485, 487, 3, 84, 42, 0, 486, 485, 1, 0, 0, 0, 487, 490, 1, 0, 0, 0, 488, 486, 1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 87, 1, 0, 0, 0, 490, 488, 1, 0, 0, 0, 491, 492, 5, 73, 0, 0, 492, 494, 3, 62, 31, 0, 493, 495, 3, 82, 41, 0, 494, 493, 1, 0, 0, 0, 494, 495, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 497, 5, 66, 0, 0, 497, 498, 3, 86, 43, 0, 498, 499, 5, 67, 0, 0, 499, 89, 1, 0, 0, 0, 500, 505, 3, 40, 20, 0, 501, 505, 3, 92, 46, 0, 502, 505, 3, 78, 39, 0, 503, 505, 5, 98, 0, 0, 504, 500, 1, 0, 0, 0, 504, 501, 1, 0, 0, 0, 504, 502, 1, 0, 0, 0, 504, 503, 1, 0, 0, 0, 505, 91, 1, 0, 0, 0, 506, 508, 3, 34, 17, 0, 507, 506, 1, 0, 0, 0, 508, 511, 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 509, 507, 1, 0, 0, 0, 510, 512, 1, 0, 0, 0, 511, 509, 1, 0, 0, 0, 512, 513, 3, 76, 38, 0, 513, 514, 3, 62, 31, 0, 514, 515, 5, 64, 0, 0, 515, 516, 3, 94, 47, 0, 516, 518, 5, 65, 0, 0, 517, 519, 3, 96, 48, 0, 518, 517, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 521, 5, 101, 0, 0, 521, 93, 1, 0, 0, 0, 522, 523, 5, 64, 0, 0, 523, 524, 3, 94, 47, 0, 524, 525, 5, 65, 0, 0, 525, 528, 1, 0, 0, 0, 526, 528, 8, 2, 0, 0, 527, 522, 1, 0, 0, 0, 527, 526, 1, 0, 0, 0, 528, 531, 1, 0, 0, 0, 529, 527, 1, 0, 0, 0, 529, 530, 1, 0, 0, 0, 530, 95, 1, 0, 0, 0, 531, 529, 1, 0, 0, 0, 532, 533, 5, 61, 0, 0, 533, 534, 5, 93, 0, 0, 534, 97, 1, 0, 0, 0, 535, 537, 3, 90, 45, 0, 536, 535, 1, 0, 0, 0, 537, 540, 1, 0, 0, 0, 538, 536, 1, 0, 0, 0, 538, 539, 1, 0, 0, 0, 539, 99, 1, 0, 0, 0, 540, 538, 1, 0, 0, 0, 541, 543, 3, 34, 17, 0, 542, 541, 1, 0, 0, 0, 543, 546, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 544, 542, 1, 0, 0, 0, 545, 547, 1, 0, 0, 0, 546, 544, 1, 0, 0, 0, 547, 548, 5, 74, 0, 0, 548, 550, 3, 62, 31, 0, 549, 551, 3, 82, 41, 0, 550, 549, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 5, 66, 0, 0, 553, 554, 3, 98, 49, 0, 554, 555, 5, 67, 0, 0, 555, 101, 1, 0, 0, 0, 556, 557, 3, 76, 38, 0, 557, 558, 3, 62, 31, 0, 558, 559, 5, 60, 0, 0, 559, 103, 1, 0, 0, 0, 560, 561, 5, 90, 0, 0, 561, 562, 3, 62, 31, 0, 562, 563, 5, 60, 0, 0, 563, 105, 1, 0, 0, 0, 564, 568, 3, 102, 51, 0, 565, 568, 3, 104, 52, 0, 566, 568, 5, 98, 0, 0, 567, 564, 1, 0, 0, 0, 567, 565, 1, 0, 0, 0, 567, 566, 1, 0, 0, 0, 568, 107, 1, 0, 0, 0, 569, 571, 3, 106, 53, 0, 570, 569, 1, 0, 0, 0, 571, 574, 1, 0, 0, 0, 572, 570, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 109, 1, 0, 0, 0, 574, 572, 1, 0, 0, 0, 575, 576, 5, 88, 0, 0, 576, 577, 3, 62, 31, 0, 577, 578, 5, 66, 0, 0, 578, 579, 3, 108, 54, 0, 579, 580, 5, 67, 0, 0, 580, 111, 1, 0, 0, 0, 581, 582, 3, 72, 36, 0, 582, 113, 1, 0, 0, 0, 583, 584, 5, 66, 0, 0, 584, 589, 3, 112, 56, 0, 585, 586, 5, 3, 0, 0, 586, 588, 3, 112, 56, 0, 587, 585, 1, 0, 0, 0, 588, 591, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 589, 590, 1, 0, 0, 0, 590, 592, 1, 0, 0, 0, 591, 589, 1, 0, 0, 0, 592, 593, 5, 67, 0, 0, 593, 115, 1, 0, 0, 0, 594, 595, 5, 91, 0, 0, 595, 596, 5, 63, 0, 0, 596, 597, 3, 62, 31, 0, 597, 598, 5, 60, 0, 0, 598, 117, 1, 0, 0, 0, 599, 601, 3, 34, 17, 0, 600, 599, 1, 0, 0, 0, 601, 604, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 602, 600, 1, 0, 0, 0, 603, 605, 1, 0, 0, 0, 604, 602, 1, 0, 0, 0, 605, 606, 3, 192, 96, 0, 606, 607, 5, 63, 0, 0, 607, 608, 3, 80, 40, 0, 608, 609, 5, 60, 0, 0, 609, 119, 1, 0, 0, 0, 610, 615, 3, 116, 58, 0, 611, 615, 3, 118, 59, 0, 612, 615, 3, 46, 23, 0, 613, 615, 5, 98, 0, 0, 614, 610, 1, 0, 0, 0, 614, 611, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 614, 613, 1, 0, 0, 0, 615, 121, 1, 0, 0, 0, 616, 618, 3, 120, 60, 0, 617, 616, 1, 0, 0, 0, 618, 621, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 123, 1, 0, 0, 0, 621, 619, 1, 0, 0, 0, 622, 624, 3, 34, 17, 0, 623, 622, 1, 0, 0, 0, 624, 627, 1, 0, 0, 0, 625, 626, 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 626, 628, 1, 0, 0, 0, 627, 625, 1, 0, 0, 0, 628, 629, 5, 76, 0, 0, 629, 631, 3, 62, 31, 0, 630, 632, 3, 82, 41, 0, 631, 630, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 633, 1, 0, 0, 0, 633, 634, 5, 66, 0, 0, 634, 635, 3, 122, 61, 0, 635, 636, 5, 67, 0, 0, 636, 125, 1, 0, 0, 0, 637, 645, 3, 116, 58, 0, 638, 645, 3, 118, 59, 0, 639, 645, 3, 46, 23, 0, 640, 645, 3, 48, 24, 0, 641, 645, 3, 50, 25, 0, 642, 645, 3, 54, 27, 0, 643, 645, 5, 98, 0, 0, 644, 637, 1, 0, 0, 0, 644, 638, 1, 0, 0, 0, 644, 639, 1, 0, 0, 0, 644, 640, 1, 0, 0, 0, 644, 641, 1, 0, 0, 0, 644, 642, 1, 0, 0, 0, 644, 643, 1, 0, 0, 0, 645, 127, 1, 0, 0, 0, 646, 648, 3, 126, 63, 0, 647, 646, 1, 0, 0, 0, 648, 651, 1, 0, 0, 0, 649, 647, 1, 0, 0, 0, 649, 650, 1, 0, 0, 0, 650, 129, 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 652, 654, 3, 34, 17, 0, 653, 652, 1, 0, 0, 0, 654, 657, 1, 0, 0, 0, 655, 656, 1, 0, 0, 0, 655, 653, 1, 0, 0, 0, 656, 658, 1, 0, 0, 0, 657, 655, 1, 0, 0, 0, 658, 659, 5, 77, 0, 0, 659, 661, 3, 62, 31, 0, 660, 662, 3, 82, 41, 0, 661, 660, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 663, 1, 0, 0, 0, 663, 664, 5, 66, 0, 0, 664, 665, 3, 128, 64, 0, 665, 666, 5, 67, 0, 0, 666, 131, 1, 0, 0, 0, 667, 670, 3, 116, 58, 0, 668, 670, 5, 98, 0, 0, 669, 667, 1, 0, 0, 0, 669, 668, 1, 0, 0, 0, 670, 133, 1, 0, 0, 0, 671, 673, 3, 132, 66, 0, 672, 671, 1, 0, 0, 0, 673, 676, 1, 0, 0, 0, 674, 672, 1, 0, 0, 0, 674, 675, 1, 0, 0, 0, 675, 135, 1, 0, 0, 0, 676, 674, 1, 0, 0, 0, 677, 678, 5, 78, 0, 0, 678, 680, 3, 62, 31, 0, 679, 681, 3, 82, 41, 0, 680, 679, 1, 0, 0, 0, 680, 681, 1, 0, 0, 0, 681, 682, 1, 0, 0, 0, 682, 683, 5, 66, 0, 0, 683, 684, 3, 134, 67, 0, 684, 685, 5, 67, 0, 0, 685, 137, 1, 0, 0, 0, 686, 687, 7, 3, 0, 0, 687, 139, 1, 0, 0, 0, 688, 689, 3, 138, 69, 0, 689, 690, 5, 63, 0, 0, 690, 691, 3, 72, 36, 0, 691, 692, 5, 60, 0, 0, 692, 141, 1, 0, 0, 0, 693, 695, 3, 34, 17, 0, 694, 693, 1, 0, 0, 0, 695, 698, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 697, 699, 1, 0, 0, 0, 698, 696, 1, 0, 0, 0, 699, 700, 5, 81, 0, 0, 700, 701, 3, 76, 38, 0, 701, 702, 3, 62, 31, 0, 702, 703, 5, 60, 0, 0, 703, 143, 1, 0, 0, 0, 704, 708, 3, 140, 70, 0, 705, 708, 3, 142, 71, 0, 706, 708, 5, 98, 0, 0, 707, 704, 1, 0, 0, 0, 707, 705, 1, 0, 0, 0, 707, 706, 1, 0, 0, 0, 708, 145, 1, 0, 0, 0, 709, 711, 3, 144, 72, 0, 710, 709, 1, 0, 0, 0, 711, 714, 1, 0, 0, 0, 712, 710, 1, 0, 0, 0, 712, 713, 1, 0, 0, 0, 713, 147, 1, 0, 0, 0, 714, 712, 1, 0, 0, 0, 715, 716, 5, 80, 0, 0, 716, 717, 3, 62, 31, 0, 717, 718, 5, 66, 0, 0, 718, 719, 3, 146, 73, 0, 719, 720, 5, 67, 0, 0, 720, 149, 1, 0, 0, 0, 721, 727, 3, 116, 58, 0, 722, 727, 3, 118, 59, 0, 723, 727, 3, 46, 23, 0, 724, 727, 3, 148, 74, 0, 725, 727, 5, 98, 0, 0, 726, 721, 1, 0, 0, 0, 726, 722, 1, 0, 0, 0, 726, 723, 1, 0, 0, 0, 726, 724, 1, 0, 0, 0, 726, 725, 1, 0, 0, 0, 727, 151, 1, 0, 0, 0, 728, 730, 3, 150, 75, 0, 729, 728, 1, 0, 0, 0, 730, 733, 1, 0, 0, 0, 731, 729, 1, 0, 0, 0, 731, 732, 1, 0, 0, 0, 732, 153, 1, 0, 0, 0, 733, 731, 1, 0, 0, 0, 734, 736, 3, 34, 17, 0, 735, 734, 1, 0, 0, 0, 736, 739, 1, 0, 0, 0, 737, 738, 1, 0, 0, 0, 737, 735, 1, 0, 0, 0, 738, 740, 1, 0, 0, 0, 739, 737, 1, 0, 0, 0, 740, 741, 5, 79, 0, 0, 741, 743, 3, 62, 31, 0, 742, 744, 3, 82, 41, 0, 743, 742, 1, 0, 0, 0, 743, 744, 1, 0, 0, 0, 744, 745, 1, 0, 0, 0, 745, 746, 5, 66, 0, 0, 746, 747, 3, 152, 76, 0, 747, 748, 5, 67, 0, 0, 748, 155, 1, 0, 0, 0, 749, 753, 3, 118, 59, 0, 750, 753, 5, 98, 0, 0, 751, 753, 3, 54, 27, 0, 752, 749, 1, 0, 0, 0, 752, 750, 1, 0, 0, 0, 752, 751, 1, 0, 0, 0, 753, 157, 1, 0, 0, 0, 754, 756, 3, 156, 78, 0, 755, 754, 1, 0, 0, 0, 756, 759, 1, 0, 0, 0, 757, 755, 1, 0, 0, 0, 757, 758, 1, 0, 0, 0, 758, 159, 1, 0, 0, 0, 759, 757, 1, 0, 0, 0, 760, 762, 3, 34, 17, 0, 761, 760, 1, 0, 0, 0, 762, 765, 1, 0, 0, 0, 763, 764, 1, 0, 0, 0, 763, 761, 1, 0, 0, 0, 764, 766, 1, 0, 0, 0, 765, 763, 1, 0, 0, 0, 766, 767, 5, 83, 0, 0, 767, 769, 3, 62, 31, 0, 768, 770, 3, 82, 41, 0, 769, 768, 1, 0, 0, 0, 769, 770, 1, 0, 0, 0, 770, 771, 1, 0, 0, 0, 771, 772, 5, 66, 0, 0, 772, 773, 3, 158, 79, 0, 773, 774, 5, 67, 0, 0, 774, 161, 1, 0, 0, 0, 775, 778, 3, 118, 59, 0, 776, 778, 5, 98, 0, 0, 777, 775, 1, 0, 0, 0, 777, 776, 1, 0, 0, 0, 778, 163, 1, 0, 0, 0, 779, 781, 3, 162, 81, 0, 780, 779, 1, 0, 0, 0, 781, 784, 1, 0, 0, 0, 782, 780, 1, 0, 0, 0, 782, 783, 1, 0, 0, 0, 783, 165, 1, 0, 0, 0, 784, 782, 1, 0, 0, 0, 785, 787, 3, 34, 17, 0, 786, 785, 1, 0, 0, 0, 787, 790, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 788, 786, 1, 0, 0, 0, 789, 791, 1, 0, 0, 0, 790, 788, 1, 0, 0, 0, 791, 792, 5, 82, 0, 0, 792, 794, 3, 62, 31, 0, 793, 795, 3, 82, 41, 0, 794, 793, 1, 0, 0, 0, 794, 795, 1, 0, 0, 0, 795, 796, 1, 0, 0, 0, 796, 797, 5, 66, 0, 0, 797, 798, 3, 164, 82, 0, 798, 799, 5, 67, 0, 0, 799, 167, 1, 0, 0, 0, 800, 802, 3, 34, 17, 0, 801, 800, 1, 0, 0, 0, 802, 805, 1, 0, 0, 0, 803, 804, 1, 0, 0, 0, 803, 801, 1, 0, 0, 0, 804, 806, 1, 0, 0, 0, 805, 803, 1, 0, 0, 0, 806, 807, 3, 76, 38, 0, 807, 808, 3, 62, 31, 0, 808, 809, 5, 60, 0, 0, 809, 169, 1, 0, 0, 0, 810, 813, 3, 168, 84, 0, 811, 813, 5, 98, 0, 0, 812, 810, 1, 0, 0, 0, 812, 811, 1, 0, 0, 0, 813, 171, 1, 0, 0, 0, 814, 816, 3, 170, 85, 0, 815, 814, 1, 0, 0, 0, 816, 819, 1, 0, 0, 0, 817, 815, 1, 0, 0, 0, 817, 818, 1, 0, 0, 0, 818, 173, 1, 0, 0, 0, 819, 817, 1, 0, 0, 0, 820, 822, 3, 34, 17, 0, 821, 820, 1, 0, 0, 0, 822, 825, 1, 0, 0, 0, 823, 824, 1, 0, 0, 0, 823, 821, 1, 0, 0, 0, 824, 826, 1, 0, 0, 0, 825, 823, 1, 0, 0, 0, 826, 827, 5, 85, 0, 0, 827, 829, 3, 62, 31, 0, 828, 830, 3, 82, 41, 0, 829, 828, 1, 0, 0, 0, 829, 830, 1, 0, 0, 0, 830, 831, 1, 0, 0, 0, 831, 832, 5, 66, 0, 0, 832, 833, 3, 172, 86, 0, 833, 834, 5, 67, 0, 0, 834, 175, 1, 0, 0, 0, 835, 837, 3, 34, 17, 0, 836, 835, 1, 0, 0, 0, 837, 840, 1, 0, 0, 0, 838, 839, 1, 0, 0, 0, 838, 836, 1, 0, 0, 0, 839, 841, 1, 0, 0, 0, 840, 838, 1, 0, 0, 0, 841, 842, 5, 84, 0, 0, 842, 844, 3, 62, 31, 0, 843, 845, 3, 82, 41, 0, 844, 843, 1, 0, 0, 0, 844, 845, 1, 0, 0, 0, 845, 846, 1, 0, 0, 0, 846, 847, 5, 66, 0, 0, 847, 848, 3, 172, 86, 0, 848, 849, 5, 67, 0, 0, 849, 177, 1, 0, 0, 0, 850, 852, 3, 34, 17, 0, 851, 850, 1, 0, 0, 0, 852, 855, 1, 0, 0, 0, 853, 851, 1, 0, 0, 0, 853, 854, 1, 0, 0, 0, 854, 856, 1, 0, 0, 0, 855, 853, 1, 0, 0, 0, 856, 857, 3, 62, 31, 0, 857, 858, 5, 60, 0, 0, 858, 861, 1, 0, 0, 0, 859, 861, 5, 98, 0, 0, 860, 853, 1, 0, 0, 0, 860, 859, 1, 0, 0, 0, 861, 179, 1, 0, 0, 0, 862, 864, 3, 178, 89, 0, 863, 862, 1, 0, 0, 0, 864, 867, 1, 0, 0, 0, 865, 863, 1, 0, 0, 0, 865, 866, 1, 0, 0, 0, 866, 181, 1, 0, 0, 0, 867, 865, 1, 0, 0, 0, 868, 869, 5, 86, 0, 0, 869, 870, 3, 62, 31, 0, 870, 871, 5, 66, 0, 0, 871, 872, 3, 180, 90, 0, 872, 873, 5, 67, 0, 0, 873, 183, 1, 0, 0, 0, 874, 877, 3, 62, 31, 0, 875, 876, 5, 63, 0, 0, 876, 878, 3, 72, 36, 0, 877, 875, 1, 0, 0, 0, 877, 878, 1, 0, 0, 0, 878, 879, 1, 0, 0, 0, 879, 880, 5, 60, 0, 0, 880, 185, 1, 0, 0, 0, 881, 884, 3, 184, 92, 0, 882, 884, 5, 98, 0, 0, 883, 881, 1, 0, 0, 0, 883, 882, 1, 0, 0, 0, 884, 187, 1, 0, 0, 0, 885, 887, 3, 186, 93, 0, 886, 885, 1, 0, 0, 0, 887, 890, 1, 0, 0, 0, 888, 886, 1, 0, 0, 0, 888, 889, 1, 0, 0, 0, 889, 189, 1, 0, 0, 0, 890, 888, 1, 0, 0, 0, 891, 892, 5, 92, 0, 0, 892, 893, 3, 62, 31, 0, 893, 894, 5, 66, 0, 0, 894, 895, 3, 188, 94, 0, 895, 896, 5, 67, 0, 0, 896, 191, 1, 0, 0, 0, 897, 898, 7, 4, 0, 0, 898, 193, 1, 0, 0, 0, 899, 900, 7, 5, 0, 0, 900, 195, 1, 0, 0, 0, 901, 902, 7, 6, 0, 0, 902, 197, 1, 0, 0, 0, 84, 201, 222, 229, 237, 251, 258, 262, 267, 275, 284, 292, 313, 321, 330, 337, 343, 347, 364, 371, 378, 389, 402, 417, 421, 424, 439, 445, 457, 463, 477, 483, 488, 494, 504, 509, 518, 527, 529, 538, 544, 550, 567, 572, 589, 602, 614, 619, 625, 631, 644, 649, 655, 661, 669, 674, 680, 696, 707, 712, 726, 731, 737, 743, 752, 757, 763, 769, 777, 782, 788, 794, 803, 812, 817, 823, 829, 838, 844, 853, 860, 865, 877, 883, 888] \ No newline at end of file diff --git a/sources/Prism/.antlr/Prism.tokens b/sources/Prism/.antlr/Prism.tokens deleted file mode 100644 index 98ada16ae..000000000 --- a/sources/Prism/.antlr/Prism.tokens +++ /dev/null @@ -1,199 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T__10=11 -T__11=12 -T__12=13 -T__13=14 -T__14=15 -T__15=16 -T__16=17 -T__17=18 -T__18=19 -T__19=20 -T__20=21 -T__21=22 -T__22=23 -T__23=24 -T__24=25 -T__25=26 -T__26=27 -T__27=28 -T__28=29 -T__29=30 -T__30=31 -T__31=32 -T__32=33 -T__33=34 -T__34=35 -T__35=36 -T__36=37 -T__37=38 -T__38=39 -T__39=40 -T__40=41 -T__41=42 -T__42=43 -T__43=44 -OR=45 -AND=46 -PIPE=47 -EQ=48 -NEQ=49 -GT=50 -LT=51 -GTEQ=52 -LTEQ=53 -PLUS=54 -MINUS=55 -DIV=56 -MOD=57 -POW=58 -NOT=59 -SCOL=60 -COLON=61 -DOT=62 -ASSIGN=63 -OPAR=64 -CPAR=65 -OBRACE=66 -CBRACE=67 -OSBRACE=68 -CSBRACE=69 -TRUE=70 -FALSE=71 -LOG=72 -LAYOUT=73 -STRUCT=74 -NAMESPACE=75 -COMPUTE_PSO=76 -GRAPHICS_PSO=77 -RAYTRACE_PSO=78 -WORKGRAPH_PSO=79 -NODE=80 -NODE_OUTPUT=81 -RAYTRACE_RAYGEN=82 -RAYTRACE_PASS=83 -PASS=84 -VIEW=85 -PIPELINE=86 -SLOT=87 -RT=88 -RTV=89 -DSV=90 -ROOTSIG=91 -ENUM=92 -ID=93 -INT_SCALAR=94 -FLOAT_SCALAR=95 -STRING=96 -RAWEXPR=97 -COMMENT=98 -SPACE=99 -POINTER=100 -FUNC_BODY=101 -INSERT_START=102 -INSERT_END=103 -INSERT_BLOCK=104 -'const'=1 -'::'=2 -','=3 -'Sampler'=4 -'define'=5 -'rtv'=6 -'blend'=7 -'launch'=8 -'entry'=9 -'num_threads'=10 -'max_dispatch_grid'=11 -'input'=12 -'compute'=13 -'vertex'=14 -'pixel'=15 -'domain'=16 -'hull'=17 -'geometry'=18 -'miss'=19 -'closest_hit'=20 -'any_hit'=21 -'raygen'=22 -'amplification'=23 -'mesh'=24 -'shader'=25 -'ds'=26 -'cull'=27 -'depth_func'=28 -'depth_write'=29 -'conservative'=30 -'depth_bias'=31 -'depth_bias_clamp'=32 -'slope_scaled_depth_bias'=33 -'enable_depth'=34 -'topology'=35 -'enable_stencil'=36 -'stencil_func'=37 -'stencil_pass_op'=38 -'stencil_read_mask'=39 -'stencil_write_mask'=40 -'recursion_depth'=41 -'payload'=42 -'per_material'=43 -'local'=44 -'||'=45 -'&&'=46 -'|'=47 -'=='=48 -'!='=49 -'>'=50 -'<'=51 -'>='=52 -'<='=53 -'+'=54 -'-'=55 -'/'=56 -'%'=57 -'^'=58 -'!'=59 -';'=60 -':'=61 -'.'=62 -'='=63 -'('=64 -')'=65 -'{'=66 -'}'=67 -'['=68 -']'=69 -'true'=70 -'false'=71 -'log'=72 -'layout'=73 -'struct'=74 -'namespace'=75 -'ComputePSO'=76 -'GraphicsPSO'=77 -'RaytracePSO'=78 -'WorkgraphPSO'=79 -'Node'=80 -'NodeOutput'=81 -'RaytraceRaygen'=82 -'RaytracePass'=83 -'PassNode'=84 -'PassView'=85 -'Pipeline'=86 -'slot'=87 -'rt'=88 -'RTV'=89 -'DSV'=90 -'root'=91 -'enum'=92 -'*'=100 -'%{'=102 -'}%'=103 diff --git a/sources/Prism/.antlr/PrismBaseListener.cpp b/sources/Prism/.antlr/PrismBaseListener.cpp deleted file mode 100644 index 74a3266a3..000000000 --- a/sources/Prism/.antlr/PrismBaseListener.cpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - - -#include "PrismBaseListener.h" - - diff --git a/sources/Prism/.antlr/PrismBaseListener.h b/sources/Prism/.antlr/PrismBaseListener.h deleted file mode 100644 index 74b515fd4..000000000 --- a/sources/Prism/.antlr/PrismBaseListener.h +++ /dev/null @@ -1,323 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - -#pragma once - - -#include "antlr4-runtime.h" -#include "PrismListener.h" - - -/** - * This class provides an empty implementation of PrismListener, - * which can be extended to create a listener which only needs to handle a subset - * of the available methods. - */ -class PrismBaseListener : public PrismListener { -public: - - virtual void enterParse(PrismParser::ParseContext * /*ctx*/) override { } - virtual void exitParse(PrismParser::ParseContext * /*ctx*/) override { } - - virtual void enterDefinition(PrismParser::DefinitionContext * /*ctx*/) override { } - virtual void exitDefinition(PrismParser::DefinitionContext * /*ctx*/) override { } - - virtual void enterNamespace_definition(PrismParser::Namespace_definitionContext * /*ctx*/) override { } - virtual void exitNamespace_definition(PrismParser::Namespace_definitionContext * /*ctx*/) override { } - - virtual void enterNamespace_header(PrismParser::Namespace_headerContext * /*ctx*/) override { } - virtual void exitNamespace_header(PrismParser::Namespace_headerContext * /*ctx*/) override { } - - virtual void enterConst_definition(PrismParser::Const_definitionContext * /*ctx*/) override { } - virtual void exitConst_definition(PrismParser::Const_definitionContext * /*ctx*/) override { } - - virtual void enterBind_option(PrismParser::Bind_optionContext * /*ctx*/) override { } - virtual void exitBind_option(PrismParser::Bind_optionContext * /*ctx*/) override { } - - virtual void enterCond_expr(PrismParser::Cond_exprContext * /*ctx*/) override { } - virtual void exitCond_expr(PrismParser::Cond_exprContext * /*ctx*/) override { } - - virtual void enterCond_term(PrismParser::Cond_termContext * /*ctx*/) override { } - virtual void exitCond_term(PrismParser::Cond_termContext * /*ctx*/) override { } - - virtual void enterCall(PrismParser::CallContext * /*ctx*/) override { } - virtual void exitCall(PrismParser::CallContext * /*ctx*/) override { } - - virtual void enterCall_arg(PrismParser::Call_argContext * /*ctx*/) override { } - virtual void exitCall_arg(PrismParser::Call_argContext * /*ctx*/) override { } - - virtual void enterQualified_ref(PrismParser::Qualified_refContext * /*ctx*/) override { } - virtual void exitQualified_ref(PrismParser::Qualified_refContext * /*ctx*/) override { } - - virtual void enterMember_ref(PrismParser::Member_refContext * /*ctx*/) override { } - virtual void exitMember_ref(PrismParser::Member_refContext * /*ctx*/) override { } - - virtual void enterCond_op(PrismParser::Cond_opContext * /*ctx*/) override { } - virtual void exitCond_op(PrismParser::Cond_opContext * /*ctx*/) override { } - - virtual void enterFlag_value_holder(PrismParser::Flag_value_holderContext * /*ctx*/) override { } - virtual void exitFlag_value_holder(PrismParser::Flag_value_holderContext * /*ctx*/) override { } - - virtual void enterRaw_value(PrismParser::Raw_valueContext * /*ctx*/) override { } - virtual void exitRaw_value(PrismParser::Raw_valueContext * /*ctx*/) override { } - - virtual void enterOptions_assign(PrismParser::Options_assignContext * /*ctx*/) override { } - virtual void exitOptions_assign(PrismParser::Options_assignContext * /*ctx*/) override { } - - virtual void enterOption(PrismParser::OptionContext * /*ctx*/) override { } - virtual void exitOption(PrismParser::OptionContext * /*ctx*/) override { } - - virtual void enterOption_block(PrismParser::Option_blockContext * /*ctx*/) override { } - virtual void exitOption_block(PrismParser::Option_blockContext * /*ctx*/) override { } - - virtual void enterArray_count_id(PrismParser::Array_count_idContext * /*ctx*/) override { } - virtual void exitArray_count_id(PrismParser::Array_count_idContext * /*ctx*/) override { } - - virtual void enterArray(PrismParser::ArrayContext * /*ctx*/) override { } - virtual void exitArray(PrismParser::ArrayContext * /*ctx*/) override { } - - virtual void enterValue_declaration(PrismParser::Value_declarationContext * /*ctx*/) override { } - virtual void exitValue_declaration(PrismParser::Value_declarationContext * /*ctx*/) override { } - - virtual void enterSlot_declaration(PrismParser::Slot_declarationContext * /*ctx*/) override { } - virtual void exitSlot_declaration(PrismParser::Slot_declarationContext * /*ctx*/) override { } - - virtual void enterSampler_declaration(PrismParser::Sampler_declarationContext * /*ctx*/) override { } - virtual void exitSampler_declaration(PrismParser::Sampler_declarationContext * /*ctx*/) override { } - - virtual void enterDefine_declaration(PrismParser::Define_declarationContext * /*ctx*/) override { } - virtual void exitDefine_declaration(PrismParser::Define_declarationContext * /*ctx*/) override { } - - virtual void enterRtv_formats_declaration(PrismParser::Rtv_formats_declarationContext * /*ctx*/) override { } - virtual void exitRtv_formats_declaration(PrismParser::Rtv_formats_declarationContext * /*ctx*/) override { } - - virtual void enterBlends_declaration(PrismParser::Blends_declarationContext * /*ctx*/) override { } - virtual void exitBlends_declaration(PrismParser::Blends_declarationContext * /*ctx*/) override { } - - virtual void enterPointer(PrismParser::PointerContext * /*ctx*/) override { } - virtual void exitPointer(PrismParser::PointerContext * /*ctx*/) override { } - - virtual void enterPso_param(PrismParser::Pso_paramContext * /*ctx*/) override { } - virtual void exitPso_param(PrismParser::Pso_paramContext * /*ctx*/) override { } - - virtual void enterClass_no_template(PrismParser::Class_no_templateContext * /*ctx*/) override { } - virtual void exitClass_no_template(PrismParser::Class_no_templateContext * /*ctx*/) override { } - - virtual void enterType_with_template(PrismParser::Type_with_templateContext * /*ctx*/) override { } - virtual void exitType_with_template(PrismParser::Type_with_templateContext * /*ctx*/) override { } - - virtual void enterInherit_id(PrismParser::Inherit_idContext * /*ctx*/) override { } - virtual void exitInherit_id(PrismParser::Inherit_idContext * /*ctx*/) override { } - - virtual void enterName_id(PrismParser::Name_idContext * /*ctx*/) override { } - virtual void exitName_id(PrismParser::Name_idContext * /*ctx*/) override { } - - virtual void enterOption_id(PrismParser::Option_idContext * /*ctx*/) override { } - virtual void exitOption_id(PrismParser::Option_idContext * /*ctx*/) override { } - - virtual void enterOwner_id(PrismParser::Owner_idContext * /*ctx*/) override { } - virtual void exitOwner_id(PrismParser::Owner_idContext * /*ctx*/) override { } - - virtual void enterTemplate_id(PrismParser::Template_idContext * /*ctx*/) override { } - virtual void exitTemplate_id(PrismParser::Template_idContext * /*ctx*/) override { } - - virtual void enterFunction_id(PrismParser::Function_idContext * /*ctx*/) override { } - virtual void exitFunction_id(PrismParser::Function_idContext * /*ctx*/) override { } - - virtual void enterValue_id(PrismParser::Value_idContext * /*ctx*/) override { } - virtual void exitValue_id(PrismParser::Value_idContext * /*ctx*/) override { } - - virtual void enterValue_id_ignore(PrismParser::Value_id_ignoreContext * /*ctx*/) override { } - virtual void exitValue_id_ignore(PrismParser::Value_id_ignoreContext * /*ctx*/) override { } - - virtual void enterType_id(PrismParser::Type_idContext * /*ctx*/) override { } - virtual void exitType_id(PrismParser::Type_idContext * /*ctx*/) override { } - - virtual void enterInsert_block(PrismParser::Insert_blockContext * /*ctx*/) override { } - virtual void exitInsert_block(PrismParser::Insert_blockContext * /*ctx*/) override { } - - virtual void enterShader_path(PrismParser::Shader_pathContext * /*ctx*/) override { } - virtual void exitShader_path(PrismParser::Shader_pathContext * /*ctx*/) override { } - - virtual void enterInherit(PrismParser::InheritContext * /*ctx*/) override { } - virtual void exitInherit(PrismParser::InheritContext * /*ctx*/) override { } - - virtual void enterLayout_stat(PrismParser::Layout_statContext * /*ctx*/) override { } - virtual void exitLayout_stat(PrismParser::Layout_statContext * /*ctx*/) override { } - - virtual void enterLayout_block(PrismParser::Layout_blockContext * /*ctx*/) override { } - virtual void exitLayout_block(PrismParser::Layout_blockContext * /*ctx*/) override { } - - virtual void enterLayout_definition(PrismParser::Layout_definitionContext * /*ctx*/) override { } - virtual void exitLayout_definition(PrismParser::Layout_definitionContext * /*ctx*/) override { } - - virtual void enterTable_stat(PrismParser::Table_statContext * /*ctx*/) override { } - virtual void exitTable_stat(PrismParser::Table_statContext * /*ctx*/) override { } - - virtual void enterFunction_definition(PrismParser::Function_definitionContext * /*ctx*/) override { } - virtual void exitFunction_definition(PrismParser::Function_definitionContext * /*ctx*/) override { } - - virtual void enterFunction_params(PrismParser::Function_paramsContext * /*ctx*/) override { } - virtual void exitFunction_params(PrismParser::Function_paramsContext * /*ctx*/) override { } - - virtual void enterFunction_semantic(PrismParser::Function_semanticContext * /*ctx*/) override { } - virtual void exitFunction_semantic(PrismParser::Function_semanticContext * /*ctx*/) override { } - - virtual void enterTable_block(PrismParser::Table_blockContext * /*ctx*/) override { } - virtual void exitTable_block(PrismParser::Table_blockContext * /*ctx*/) override { } - - virtual void enterTable_definition(PrismParser::Table_definitionContext * /*ctx*/) override { } - virtual void exitTable_definition(PrismParser::Table_definitionContext * /*ctx*/) override { } - - virtual void enterRt_color_declaration(PrismParser::Rt_color_declarationContext * /*ctx*/) override { } - virtual void exitRt_color_declaration(PrismParser::Rt_color_declarationContext * /*ctx*/) override { } - - virtual void enterRt_ds_declaration(PrismParser::Rt_ds_declarationContext * /*ctx*/) override { } - virtual void exitRt_ds_declaration(PrismParser::Rt_ds_declarationContext * /*ctx*/) override { } - - virtual void enterRt_stat(PrismParser::Rt_statContext * /*ctx*/) override { } - virtual void exitRt_stat(PrismParser::Rt_statContext * /*ctx*/) override { } - - virtual void enterRt_block(PrismParser::Rt_blockContext * /*ctx*/) override { } - virtual void exitRt_block(PrismParser::Rt_blockContext * /*ctx*/) override { } - - virtual void enterRt_definition(PrismParser::Rt_definitionContext * /*ctx*/) override { } - virtual void exitRt_definition(PrismParser::Rt_definitionContext * /*ctx*/) override { } - - virtual void enterArray_value_holder(PrismParser::Array_value_holderContext * /*ctx*/) override { } - virtual void exitArray_value_holder(PrismParser::Array_value_holderContext * /*ctx*/) override { } - - virtual void enterArray_value_ids(PrismParser::Array_value_idsContext * /*ctx*/) override { } - virtual void exitArray_value_ids(PrismParser::Array_value_idsContext * /*ctx*/) override { } - - virtual void enterRoot_sig(PrismParser::Root_sigContext * /*ctx*/) override { } - virtual void exitRoot_sig(PrismParser::Root_sigContext * /*ctx*/) override { } - - virtual void enterShader(PrismParser::ShaderContext * /*ctx*/) override { } - virtual void exitShader(PrismParser::ShaderContext * /*ctx*/) override { } - - virtual void enterCompute_pso_stat(PrismParser::Compute_pso_statContext * /*ctx*/) override { } - virtual void exitCompute_pso_stat(PrismParser::Compute_pso_statContext * /*ctx*/) override { } - - virtual void enterCompute_pso_block(PrismParser::Compute_pso_blockContext * /*ctx*/) override { } - virtual void exitCompute_pso_block(PrismParser::Compute_pso_blockContext * /*ctx*/) override { } - - virtual void enterCompute_pso_definition(PrismParser::Compute_pso_definitionContext * /*ctx*/) override { } - virtual void exitCompute_pso_definition(PrismParser::Compute_pso_definitionContext * /*ctx*/) override { } - - virtual void enterGraphics_pso_stat(PrismParser::Graphics_pso_statContext * /*ctx*/) override { } - virtual void exitGraphics_pso_stat(PrismParser::Graphics_pso_statContext * /*ctx*/) override { } - - virtual void enterGraphics_pso_block(PrismParser::Graphics_pso_blockContext * /*ctx*/) override { } - virtual void exitGraphics_pso_block(PrismParser::Graphics_pso_blockContext * /*ctx*/) override { } - - virtual void enterGraphics_pso_definition(PrismParser::Graphics_pso_definitionContext * /*ctx*/) override { } - virtual void exitGraphics_pso_definition(PrismParser::Graphics_pso_definitionContext * /*ctx*/) override { } - - virtual void enterRtx_pso_stat(PrismParser::Rtx_pso_statContext * /*ctx*/) override { } - virtual void exitRtx_pso_stat(PrismParser::Rtx_pso_statContext * /*ctx*/) override { } - - virtual void enterRtx_pso_block(PrismParser::Rtx_pso_blockContext * /*ctx*/) override { } - virtual void exitRtx_pso_block(PrismParser::Rtx_pso_blockContext * /*ctx*/) override { } - - virtual void enterRtx_pso_definition(PrismParser::Rtx_pso_definitionContext * /*ctx*/) override { } - virtual void exitRtx_pso_definition(PrismParser::Rtx_pso_definitionContext * /*ctx*/) override { } - - virtual void enterNode_param_id(PrismParser::Node_param_idContext * /*ctx*/) override { } - virtual void exitNode_param_id(PrismParser::Node_param_idContext * /*ctx*/) override { } - - virtual void enterNode_param(PrismParser::Node_paramContext * /*ctx*/) override { } - virtual void exitNode_param(PrismParser::Node_paramContext * /*ctx*/) override { } - - virtual void enterNode_output_decl(PrismParser::Node_output_declContext * /*ctx*/) override { } - virtual void exitNode_output_decl(PrismParser::Node_output_declContext * /*ctx*/) override { } - - virtual void enterNode_stat(PrismParser::Node_statContext * /*ctx*/) override { } - virtual void exitNode_stat(PrismParser::Node_statContext * /*ctx*/) override { } - - virtual void enterNode_block(PrismParser::Node_blockContext * /*ctx*/) override { } - virtual void exitNode_block(PrismParser::Node_blockContext * /*ctx*/) override { } - - virtual void enterNode_definition(PrismParser::Node_definitionContext * /*ctx*/) override { } - virtual void exitNode_definition(PrismParser::Node_definitionContext * /*ctx*/) override { } - - virtual void enterWorkgraph_pso_stat(PrismParser::Workgraph_pso_statContext * /*ctx*/) override { } - virtual void exitWorkgraph_pso_stat(PrismParser::Workgraph_pso_statContext * /*ctx*/) override { } - - virtual void enterWorkgraph_pso_block(PrismParser::Workgraph_pso_blockContext * /*ctx*/) override { } - virtual void exitWorkgraph_pso_block(PrismParser::Workgraph_pso_blockContext * /*ctx*/) override { } - - virtual void enterWorkgraph_pso_definition(PrismParser::Workgraph_pso_definitionContext * /*ctx*/) override { } - virtual void exitWorkgraph_pso_definition(PrismParser::Workgraph_pso_definitionContext * /*ctx*/) override { } - - virtual void enterRtx_pass_stat(PrismParser::Rtx_pass_statContext * /*ctx*/) override { } - virtual void exitRtx_pass_stat(PrismParser::Rtx_pass_statContext * /*ctx*/) override { } - - virtual void enterRtx_pass_block(PrismParser::Rtx_pass_blockContext * /*ctx*/) override { } - virtual void exitRtx_pass_block(PrismParser::Rtx_pass_blockContext * /*ctx*/) override { } - - virtual void enterRtx_pass_definition(PrismParser::Rtx_pass_definitionContext * /*ctx*/) override { } - virtual void exitRtx_pass_definition(PrismParser::Rtx_pass_definitionContext * /*ctx*/) override { } - - virtual void enterRtx_raygen_stat(PrismParser::Rtx_raygen_statContext * /*ctx*/) override { } - virtual void exitRtx_raygen_stat(PrismParser::Rtx_raygen_statContext * /*ctx*/) override { } - - virtual void enterRtx_raygen_block(PrismParser::Rtx_raygen_blockContext * /*ctx*/) override { } - virtual void exitRtx_raygen_block(PrismParser::Rtx_raygen_blockContext * /*ctx*/) override { } - - virtual void enterRtx_raygen_definition(PrismParser::Rtx_raygen_definitionContext * /*ctx*/) override { } - virtual void exitRtx_raygen_definition(PrismParser::Rtx_raygen_definitionContext * /*ctx*/) override { } - - virtual void enterView_declaration(PrismParser::View_declarationContext * /*ctx*/) override { } - virtual void exitView_declaration(PrismParser::View_declarationContext * /*ctx*/) override { } - - virtual void enterView_stat(PrismParser::View_statContext * /*ctx*/) override { } - virtual void exitView_stat(PrismParser::View_statContext * /*ctx*/) override { } - - virtual void enterView_block(PrismParser::View_blockContext * /*ctx*/) override { } - virtual void exitView_block(PrismParser::View_blockContext * /*ctx*/) override { } - - virtual void enterView_definition(PrismParser::View_definitionContext * /*ctx*/) override { } - virtual void exitView_definition(PrismParser::View_definitionContext * /*ctx*/) override { } - - virtual void enterPass_definition(PrismParser::Pass_definitionContext * /*ctx*/) override { } - virtual void exitPass_definition(PrismParser::Pass_definitionContext * /*ctx*/) override { } - - virtual void enterPipeline_stat(PrismParser::Pipeline_statContext * /*ctx*/) override { } - virtual void exitPipeline_stat(PrismParser::Pipeline_statContext * /*ctx*/) override { } - - virtual void enterPipeline_block(PrismParser::Pipeline_blockContext * /*ctx*/) override { } - virtual void exitPipeline_block(PrismParser::Pipeline_blockContext * /*ctx*/) override { } - - virtual void enterPipeline_definition(PrismParser::Pipeline_definitionContext * /*ctx*/) override { } - virtual void exitPipeline_definition(PrismParser::Pipeline_definitionContext * /*ctx*/) override { } - - virtual void enterEnum_value_declaration(PrismParser::Enum_value_declarationContext * /*ctx*/) override { } - virtual void exitEnum_value_declaration(PrismParser::Enum_value_declarationContext * /*ctx*/) override { } - - virtual void enterEnum_stat(PrismParser::Enum_statContext * /*ctx*/) override { } - virtual void exitEnum_stat(PrismParser::Enum_statContext * /*ctx*/) override { } - - virtual void enterEnum_block(PrismParser::Enum_blockContext * /*ctx*/) override { } - virtual void exitEnum_block(PrismParser::Enum_blockContext * /*ctx*/) override { } - - virtual void enterEnum_definition(PrismParser::Enum_definitionContext * /*ctx*/) override { } - virtual void exitEnum_definition(PrismParser::Enum_definitionContext * /*ctx*/) override { } - - virtual void enterShader_type(PrismParser::Shader_typeContext * /*ctx*/) override { } - virtual void exitShader_type(PrismParser::Shader_typeContext * /*ctx*/) override { } - - virtual void enterPso_param_id(PrismParser::Pso_param_idContext * /*ctx*/) override { } - virtual void exitPso_param_id(PrismParser::Pso_param_idContext * /*ctx*/) override { } - - virtual void enterBool_type(PrismParser::Bool_typeContext * /*ctx*/) override { } - virtual void exitBool_type(PrismParser::Bool_typeContext * /*ctx*/) override { } - - - virtual void enterEveryRule(antlr4::ParserRuleContext * /*ctx*/) override { } - virtual void exitEveryRule(antlr4::ParserRuleContext * /*ctx*/) override { } - virtual void visitTerminal(antlr4::tree::TerminalNode * /*node*/) override { } - virtual void visitErrorNode(antlr4::tree::ErrorNode * /*node*/) override { } - -}; - diff --git a/sources/Prism/.antlr/PrismBaseVisitor.cpp b/sources/Prism/.antlr/PrismBaseVisitor.cpp deleted file mode 100644 index 9df7c70f3..000000000 --- a/sources/Prism/.antlr/PrismBaseVisitor.cpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - - -#include "PrismBaseVisitor.h" - - diff --git a/sources/Prism/.antlr/PrismBaseVisitor.h b/sources/Prism/.antlr/PrismBaseVisitor.h deleted file mode 100644 index 1c7ba8486..000000000 --- a/sources/Prism/.antlr/PrismBaseVisitor.h +++ /dev/null @@ -1,416 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - -#pragma once - - -#include "antlr4-runtime.h" -#include "PrismVisitor.h" - - -/** - * This class provides an empty implementation of PrismVisitor, which can be - * extended to create a visitor which only needs to handle a subset of the available methods. - */ -class PrismBaseVisitor : public PrismVisitor { -public: - - virtual std::any visitParse(PrismParser::ParseContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitDefinition(PrismParser::DefinitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNamespace_definition(PrismParser::Namespace_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNamespace_header(PrismParser::Namespace_headerContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitConst_definition(PrismParser::Const_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBind_option(PrismParser::Bind_optionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCond_expr(PrismParser::Cond_exprContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCond_term(PrismParser::Cond_termContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCall(PrismParser::CallContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCall_arg(PrismParser::Call_argContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitQualified_ref(PrismParser::Qualified_refContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitMember_ref(PrismParser::Member_refContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCond_op(PrismParser::Cond_opContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFlag_value_holder(PrismParser::Flag_value_holderContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRaw_value(PrismParser::Raw_valueContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitOptions_assign(PrismParser::Options_assignContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitOption(PrismParser::OptionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitOption_block(PrismParser::Option_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitArray_count_id(PrismParser::Array_count_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitArray(PrismParser::ArrayContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitValue_declaration(PrismParser::Value_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSlot_declaration(PrismParser::Slot_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitSampler_declaration(PrismParser::Sampler_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitDefine_declaration(PrismParser::Define_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtv_formats_declaration(PrismParser::Rtv_formats_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBlends_declaration(PrismParser::Blends_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPointer(PrismParser::PointerContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPso_param(PrismParser::Pso_paramContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitClass_no_template(PrismParser::Class_no_templateContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitType_with_template(PrismParser::Type_with_templateContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitInherit_id(PrismParser::Inherit_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitName_id(PrismParser::Name_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitOption_id(PrismParser::Option_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitOwner_id(PrismParser::Owner_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitTemplate_id(PrismParser::Template_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFunction_id(PrismParser::Function_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitValue_id(PrismParser::Value_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitValue_id_ignore(PrismParser::Value_id_ignoreContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitType_id(PrismParser::Type_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitInsert_block(PrismParser::Insert_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitShader_path(PrismParser::Shader_pathContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitInherit(PrismParser::InheritContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitLayout_stat(PrismParser::Layout_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitLayout_block(PrismParser::Layout_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitLayout_definition(PrismParser::Layout_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitTable_stat(PrismParser::Table_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFunction_definition(PrismParser::Function_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFunction_params(PrismParser::Function_paramsContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitFunction_semantic(PrismParser::Function_semanticContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitTable_block(PrismParser::Table_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitTable_definition(PrismParser::Table_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRt_color_declaration(PrismParser::Rt_color_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRt_ds_declaration(PrismParser::Rt_ds_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRt_stat(PrismParser::Rt_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRt_block(PrismParser::Rt_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRt_definition(PrismParser::Rt_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitArray_value_holder(PrismParser::Array_value_holderContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitArray_value_ids(PrismParser::Array_value_idsContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRoot_sig(PrismParser::Root_sigContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitShader(PrismParser::ShaderContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCompute_pso_stat(PrismParser::Compute_pso_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCompute_pso_block(PrismParser::Compute_pso_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitCompute_pso_definition(PrismParser::Compute_pso_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGraphics_pso_stat(PrismParser::Graphics_pso_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGraphics_pso_block(PrismParser::Graphics_pso_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitGraphics_pso_definition(PrismParser::Graphics_pso_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_pso_stat(PrismParser::Rtx_pso_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_pso_block(PrismParser::Rtx_pso_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_pso_definition(PrismParser::Rtx_pso_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNode_param_id(PrismParser::Node_param_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNode_param(PrismParser::Node_paramContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNode_output_decl(PrismParser::Node_output_declContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNode_stat(PrismParser::Node_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNode_block(PrismParser::Node_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitNode_definition(PrismParser::Node_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitWorkgraph_pso_stat(PrismParser::Workgraph_pso_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitWorkgraph_pso_block(PrismParser::Workgraph_pso_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitWorkgraph_pso_definition(PrismParser::Workgraph_pso_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_pass_stat(PrismParser::Rtx_pass_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_pass_block(PrismParser::Rtx_pass_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_pass_definition(PrismParser::Rtx_pass_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_raygen_stat(PrismParser::Rtx_raygen_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_raygen_block(PrismParser::Rtx_raygen_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitRtx_raygen_definition(PrismParser::Rtx_raygen_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitView_declaration(PrismParser::View_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitView_stat(PrismParser::View_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitView_block(PrismParser::View_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitView_definition(PrismParser::View_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPass_definition(PrismParser::Pass_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPipeline_stat(PrismParser::Pipeline_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPipeline_block(PrismParser::Pipeline_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPipeline_definition(PrismParser::Pipeline_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitEnum_value_declaration(PrismParser::Enum_value_declarationContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitEnum_stat(PrismParser::Enum_statContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitEnum_block(PrismParser::Enum_blockContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitEnum_definition(PrismParser::Enum_definitionContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitShader_type(PrismParser::Shader_typeContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitPso_param_id(PrismParser::Pso_param_idContext *ctx) override { - return visitChildren(ctx); - } - - virtual std::any visitBool_type(PrismParser::Bool_typeContext *ctx) override { - return visitChildren(ctx); - } - - -}; - diff --git a/sources/Prism/.antlr/PrismLexer.cpp b/sources/Prism/.antlr/PrismLexer.cpp deleted file mode 100644 index 588f52f50..000000000 --- a/sources/Prism/.antlr/PrismLexer.cpp +++ /dev/null @@ -1,518 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - - -#include "PrismLexer.h" - - -using namespace antlr4; - - - -using namespace antlr4; - -namespace { - -struct PrismLexerStaticData final { - PrismLexerStaticData(std::vector ruleNames, - std::vector channelNames, - std::vector modeNames, - std::vector literalNames, - std::vector symbolicNames) - : ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)), - modeNames(std::move(modeNames)), literalNames(std::move(literalNames)), - symbolicNames(std::move(symbolicNames)), - vocabulary(this->literalNames, this->symbolicNames) {} - - PrismLexerStaticData(const PrismLexerStaticData&) = delete; - PrismLexerStaticData(PrismLexerStaticData&&) = delete; - PrismLexerStaticData& operator=(const PrismLexerStaticData&) = delete; - PrismLexerStaticData& operator=(PrismLexerStaticData&&) = delete; - - std::vector decisionToDFA; - antlr4::atn::PredictionContextCache sharedContextCache; - const std::vector ruleNames; - const std::vector channelNames; - const std::vector modeNames; - const std::vector literalNames; - const std::vector symbolicNames; - const antlr4::dfa::Vocabulary vocabulary; - antlr4::atn::SerializedATNView serializedATN; - std::unique_ptr atn; -}; - -::antlr4::internal::OnceFlag prismlexerLexerOnceFlag; -PrismLexerStaticData *prismlexerLexerStaticData = nullptr; - -void prismlexerLexerInitialize() { - assert(prismlexerLexerStaticData == nullptr); - auto staticData = std::make_unique( - std::vector{ - "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", - "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", - "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", - "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32", - "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40", - "T__41", "T__42", "T__43", "OR", "AND", "PIPE", "EQ", "NEQ", "GT", - "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", "DIV", "MOD", "POW", "NOT", - "SCOL", "COLON", "DOT", "ASSIGN", "OPAR", "CPAR", "OBRACE", "CBRACE", - "OSBRACE", "CSBRACE", "TRUE", "FALSE", "LOG", "LAYOUT", "STRUCT", - "NAMESPACE", "COMPUTE_PSO", "GRAPHICS_PSO", "RAYTRACE_PSO", "WORKGRAPH_PSO", - "NODE", "NODE_OUTPUT", "RAYTRACE_RAYGEN", "RAYTRACE_PASS", "PASS", - "VIEW", "PIPELINE", "SLOT", "RT", "RTV", "DSV", "ROOTSIG", "ENUM", - "ID", "INT_SCALAR", "FLOAT_SCALAR", "STRING", "RAWEXPR", "COMMENT", - "SPACE", "POINTER", "FUNC_BODY", "FUNC_BLOCK", "FUNC_BLOCK_TAIL", - "INSERT_START", "INSERT_END", "INSERT_BLOCK" - }, - std::vector{ - "DEFAULT_TOKEN_CHANNEL", "HIDDEN" - }, - std::vector{ - "DEFAULT_MODE" - }, - std::vector{ - "", "'const'", "'::'", "','", "'Sampler'", "'define'", "'rtv'", "'blend'", - "'launch'", "'entry'", "'num_threads'", "'max_dispatch_grid'", "'input'", - "'compute'", "'vertex'", "'pixel'", "'domain'", "'hull'", "'geometry'", - "'miss'", "'closest_hit'", "'any_hit'", "'raygen'", "'amplification'", - "'mesh'", "'shader'", "'ds'", "'cull'", "'depth_func'", "'depth_write'", - "'conservative'", "'depth_bias'", "'depth_bias_clamp'", "'slope_scaled_depth_bias'", - "'enable_depth'", "'topology'", "'enable_stencil'", "'stencil_func'", - "'stencil_pass_op'", "'stencil_read_mask'", "'stencil_write_mask'", - "'recursion_depth'", "'payload'", "'per_material'", "'local'", "'||'", - "'&&'", "'|'", "'=='", "'!='", "'>'", "'<'", "'>='", "'<='", "'+'", - "'-'", "'/'", "'%'", "'^'", "'!'", "';'", "':'", "'.'", "'='", "'('", - "')'", "'{'", "'}'", "'['", "']'", "'true'", "'false'", "'log'", "'layout'", - "'struct'", "'namespace'", "'ComputePSO'", "'GraphicsPSO'", "'RaytracePSO'", - "'WorkgraphPSO'", "'Node'", "'NodeOutput'", "'RaytraceRaygen'", "'RaytracePass'", - "'PassNode'", "'PassView'", "'Pipeline'", "'slot'", "'rt'", "'RTV'", - "'DSV'", "'root'", "'enum'", "", "", "", "", "", "", "", "'*'", "", - "'%{'", "'}%'" - }, - std::vector{ - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "OR", "AND", "PIPE", "EQ", - "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", "DIV", "MOD", - "POW", "NOT", "SCOL", "COLON", "DOT", "ASSIGN", "OPAR", "CPAR", "OBRACE", - "CBRACE", "OSBRACE", "CSBRACE", "TRUE", "FALSE", "LOG", "LAYOUT", - "STRUCT", "NAMESPACE", "COMPUTE_PSO", "GRAPHICS_PSO", "RAYTRACE_PSO", - "WORKGRAPH_PSO", "NODE", "NODE_OUTPUT", "RAYTRACE_RAYGEN", "RAYTRACE_PASS", - "PASS", "VIEW", "PIPELINE", "SLOT", "RT", "RTV", "DSV", "ROOTSIG", - "ENUM", "ID", "INT_SCALAR", "FLOAT_SCALAR", "STRING", "RAWEXPR", "COMMENT", - "SPACE", "POINTER", "FUNC_BODY", "INSERT_START", "INSERT_END", "INSERT_BLOCK" - } - ); - static const int32_t serializedATNSegment[] = { - 4,0,104,1009,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, - 7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2, - 14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2, - 21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2, - 28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2, - 35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2, - 42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2, - 49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2, - 56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2, - 63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2, - 70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2, - 77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2, - 84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2, - 91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2, - 98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104, - 7,104,2,105,7,105,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,2,1,2,1,3,1,3, - 1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1, - 6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8, - 1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1, - 10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1, - 10,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1, - 12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1, - 15,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1, - 17,1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1, - 19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1, - 20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1, - 22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1, - 23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,26,1,26,1, - 26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1, - 28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1, - 29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1, - 30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1, - 31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1, - 32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1, - 32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1, - 33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1, - 34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1, - 35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1, - 36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1, - 37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1, - 38,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1, - 39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1, - 40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1, - 41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1, - 42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1, - 44,1,44,1,45,1,45,1,45,1,46,1,46,1,47,1,47,1,47,1,48,1,48,1,48,1,49,1, - 49,1,50,1,50,1,51,1,51,1,51,1,52,1,52,1,52,1,53,1,53,1,54,1,54,1,55,1, - 55,1,56,1,56,1,57,1,57,1,58,1,58,1,59,1,59,1,60,1,60,1,61,1,61,1,62,1, - 62,1,63,1,63,1,64,1,64,1,65,1,65,1,66,1,66,1,67,1,67,1,68,1,68,1,69,1, - 69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1, - 72,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1, - 74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1, - 75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1, - 76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1, - 77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1, - 78,1,78,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1, - 80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1, - 81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1, - 82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1, - 84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,1, - 85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,88,1,88,1,88,1, - 88,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1, - 91,1,92,1,92,5,92,883,8,92,10,92,12,92,886,9,92,1,93,4,93,889,8,93,11, - 93,12,93,890,1,94,4,94,894,8,94,11,94,12,94,895,1,94,1,94,5,94,900,8, - 94,10,94,12,94,903,9,94,1,94,1,94,4,94,907,8,94,11,94,12,94,908,3,94, - 911,8,94,1,95,1,95,1,95,1,95,5,95,917,8,95,10,95,12,95,920,9,95,1,95, - 1,95,1,96,1,96,5,96,926,8,96,10,96,12,96,929,9,96,1,96,1,96,1,97,1,97, - 5,97,935,8,97,10,97,12,97,938,9,97,1,97,1,97,1,98,1,98,1,98,1,98,1,99, - 1,99,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,102,1,102,1,102,1,102, - 1,102,5,102,960,8,102,10,102,12,102,963,9,102,1,102,1,102,1,102,1,102, - 5,102,969,8,102,10,102,12,102,972,9,102,1,102,1,102,1,102,1,102,1,102, - 1,102,5,102,980,8,102,10,102,12,102,983,9,102,1,102,1,102,1,102,5,102, - 988,8,102,10,102,12,102,991,9,102,1,102,1,102,1,103,1,103,1,103,1,104, - 1,104,1,104,1,105,1,105,5,105,1003,8,105,10,105,12,105,1006,9,105,1,105, - 1,105,2,970,1004,0,106,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10, - 21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43, - 22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33, - 67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89, - 45,91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,111, - 56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,65,131, - 66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,149,75,151, - 76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,84,169,85,171, - 86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,187,94,189,95,191, - 96,193,97,195,98,197,99,199,100,201,101,203,0,205,0,207,102,209,103,211, - 104,1,0,9,3,0,65,90,95,95,97,122,4,0,48,57,65,90,95,95,97,122,1,0,48, - 57,3,0,10,10,13,13,34,34,1,0,96,96,2,0,10,10,13,13,3,0,9,10,13,13,32, - 32,4,0,10,10,13,13,34,34,92,92,4,0,34,34,47,47,123,123,125,125,1027,0, - 1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0, - 0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0, - 23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1, - 0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0, - 0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0, - 55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1, - 0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0, - 0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0, - 87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1, - 0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1, - 0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1, - 0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1, - 0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1, - 0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1, - 0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1, - 0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1, - 0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1, - 0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1, - 0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1, - 0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1, - 0,0,0,1,213,1,0,0,0,3,219,1,0,0,0,5,222,1,0,0,0,7,224,1,0,0,0,9,232,1, - 0,0,0,11,239,1,0,0,0,13,243,1,0,0,0,15,249,1,0,0,0,17,256,1,0,0,0,19, - 262,1,0,0,0,21,274,1,0,0,0,23,292,1,0,0,0,25,298,1,0,0,0,27,306,1,0,0, - 0,29,313,1,0,0,0,31,319,1,0,0,0,33,326,1,0,0,0,35,331,1,0,0,0,37,340, - 1,0,0,0,39,345,1,0,0,0,41,357,1,0,0,0,43,365,1,0,0,0,45,372,1,0,0,0,47, - 386,1,0,0,0,49,391,1,0,0,0,51,398,1,0,0,0,53,401,1,0,0,0,55,406,1,0,0, - 0,57,417,1,0,0,0,59,429,1,0,0,0,61,442,1,0,0,0,63,453,1,0,0,0,65,470, - 1,0,0,0,67,494,1,0,0,0,69,507,1,0,0,0,71,516,1,0,0,0,73,531,1,0,0,0,75, - 544,1,0,0,0,77,560,1,0,0,0,79,578,1,0,0,0,81,597,1,0,0,0,83,613,1,0,0, - 0,85,621,1,0,0,0,87,634,1,0,0,0,89,640,1,0,0,0,91,643,1,0,0,0,93,646, - 1,0,0,0,95,648,1,0,0,0,97,651,1,0,0,0,99,654,1,0,0,0,101,656,1,0,0,0, - 103,658,1,0,0,0,105,661,1,0,0,0,107,664,1,0,0,0,109,666,1,0,0,0,111,668, - 1,0,0,0,113,670,1,0,0,0,115,672,1,0,0,0,117,674,1,0,0,0,119,676,1,0,0, - 0,121,678,1,0,0,0,123,680,1,0,0,0,125,682,1,0,0,0,127,684,1,0,0,0,129, - 686,1,0,0,0,131,688,1,0,0,0,133,690,1,0,0,0,135,692,1,0,0,0,137,694,1, - 0,0,0,139,696,1,0,0,0,141,701,1,0,0,0,143,707,1,0,0,0,145,711,1,0,0,0, - 147,718,1,0,0,0,149,725,1,0,0,0,151,735,1,0,0,0,153,746,1,0,0,0,155,758, - 1,0,0,0,157,770,1,0,0,0,159,783,1,0,0,0,161,788,1,0,0,0,163,799,1,0,0, - 0,165,814,1,0,0,0,167,827,1,0,0,0,169,836,1,0,0,0,171,845,1,0,0,0,173, - 854,1,0,0,0,175,859,1,0,0,0,177,862,1,0,0,0,179,866,1,0,0,0,181,870,1, - 0,0,0,183,875,1,0,0,0,185,880,1,0,0,0,187,888,1,0,0,0,189,910,1,0,0,0, - 191,912,1,0,0,0,193,923,1,0,0,0,195,932,1,0,0,0,197,941,1,0,0,0,199,945, - 1,0,0,0,201,947,1,0,0,0,203,951,1,0,0,0,205,989,1,0,0,0,207,994,1,0,0, - 0,209,997,1,0,0,0,211,1000,1,0,0,0,213,214,5,99,0,0,214,215,5,111,0,0, - 215,216,5,110,0,0,216,217,5,115,0,0,217,218,5,116,0,0,218,2,1,0,0,0,219, - 220,5,58,0,0,220,221,5,58,0,0,221,4,1,0,0,0,222,223,5,44,0,0,223,6,1, - 0,0,0,224,225,5,83,0,0,225,226,5,97,0,0,226,227,5,109,0,0,227,228,5,112, - 0,0,228,229,5,108,0,0,229,230,5,101,0,0,230,231,5,114,0,0,231,8,1,0,0, - 0,232,233,5,100,0,0,233,234,5,101,0,0,234,235,5,102,0,0,235,236,5,105, - 0,0,236,237,5,110,0,0,237,238,5,101,0,0,238,10,1,0,0,0,239,240,5,114, - 0,0,240,241,5,116,0,0,241,242,5,118,0,0,242,12,1,0,0,0,243,244,5,98,0, - 0,244,245,5,108,0,0,245,246,5,101,0,0,246,247,5,110,0,0,247,248,5,100, - 0,0,248,14,1,0,0,0,249,250,5,108,0,0,250,251,5,97,0,0,251,252,5,117,0, - 0,252,253,5,110,0,0,253,254,5,99,0,0,254,255,5,104,0,0,255,16,1,0,0,0, - 256,257,5,101,0,0,257,258,5,110,0,0,258,259,5,116,0,0,259,260,5,114,0, - 0,260,261,5,121,0,0,261,18,1,0,0,0,262,263,5,110,0,0,263,264,5,117,0, - 0,264,265,5,109,0,0,265,266,5,95,0,0,266,267,5,116,0,0,267,268,5,104, - 0,0,268,269,5,114,0,0,269,270,5,101,0,0,270,271,5,97,0,0,271,272,5,100, - 0,0,272,273,5,115,0,0,273,20,1,0,0,0,274,275,5,109,0,0,275,276,5,97,0, - 0,276,277,5,120,0,0,277,278,5,95,0,0,278,279,5,100,0,0,279,280,5,105, - 0,0,280,281,5,115,0,0,281,282,5,112,0,0,282,283,5,97,0,0,283,284,5,116, - 0,0,284,285,5,99,0,0,285,286,5,104,0,0,286,287,5,95,0,0,287,288,5,103, - 0,0,288,289,5,114,0,0,289,290,5,105,0,0,290,291,5,100,0,0,291,22,1,0, - 0,0,292,293,5,105,0,0,293,294,5,110,0,0,294,295,5,112,0,0,295,296,5,117, - 0,0,296,297,5,116,0,0,297,24,1,0,0,0,298,299,5,99,0,0,299,300,5,111,0, - 0,300,301,5,109,0,0,301,302,5,112,0,0,302,303,5,117,0,0,303,304,5,116, - 0,0,304,305,5,101,0,0,305,26,1,0,0,0,306,307,5,118,0,0,307,308,5,101, - 0,0,308,309,5,114,0,0,309,310,5,116,0,0,310,311,5,101,0,0,311,312,5,120, - 0,0,312,28,1,0,0,0,313,314,5,112,0,0,314,315,5,105,0,0,315,316,5,120, - 0,0,316,317,5,101,0,0,317,318,5,108,0,0,318,30,1,0,0,0,319,320,5,100, - 0,0,320,321,5,111,0,0,321,322,5,109,0,0,322,323,5,97,0,0,323,324,5,105, - 0,0,324,325,5,110,0,0,325,32,1,0,0,0,326,327,5,104,0,0,327,328,5,117, - 0,0,328,329,5,108,0,0,329,330,5,108,0,0,330,34,1,0,0,0,331,332,5,103, - 0,0,332,333,5,101,0,0,333,334,5,111,0,0,334,335,5,109,0,0,335,336,5,101, - 0,0,336,337,5,116,0,0,337,338,5,114,0,0,338,339,5,121,0,0,339,36,1,0, - 0,0,340,341,5,109,0,0,341,342,5,105,0,0,342,343,5,115,0,0,343,344,5,115, - 0,0,344,38,1,0,0,0,345,346,5,99,0,0,346,347,5,108,0,0,347,348,5,111,0, - 0,348,349,5,115,0,0,349,350,5,101,0,0,350,351,5,115,0,0,351,352,5,116, - 0,0,352,353,5,95,0,0,353,354,5,104,0,0,354,355,5,105,0,0,355,356,5,116, - 0,0,356,40,1,0,0,0,357,358,5,97,0,0,358,359,5,110,0,0,359,360,5,121,0, - 0,360,361,5,95,0,0,361,362,5,104,0,0,362,363,5,105,0,0,363,364,5,116, - 0,0,364,42,1,0,0,0,365,366,5,114,0,0,366,367,5,97,0,0,367,368,5,121,0, - 0,368,369,5,103,0,0,369,370,5,101,0,0,370,371,5,110,0,0,371,44,1,0,0, - 0,372,373,5,97,0,0,373,374,5,109,0,0,374,375,5,112,0,0,375,376,5,108, - 0,0,376,377,5,105,0,0,377,378,5,102,0,0,378,379,5,105,0,0,379,380,5,99, - 0,0,380,381,5,97,0,0,381,382,5,116,0,0,382,383,5,105,0,0,383,384,5,111, - 0,0,384,385,5,110,0,0,385,46,1,0,0,0,386,387,5,109,0,0,387,388,5,101, - 0,0,388,389,5,115,0,0,389,390,5,104,0,0,390,48,1,0,0,0,391,392,5,115, - 0,0,392,393,5,104,0,0,393,394,5,97,0,0,394,395,5,100,0,0,395,396,5,101, - 0,0,396,397,5,114,0,0,397,50,1,0,0,0,398,399,5,100,0,0,399,400,5,115, - 0,0,400,52,1,0,0,0,401,402,5,99,0,0,402,403,5,117,0,0,403,404,5,108,0, - 0,404,405,5,108,0,0,405,54,1,0,0,0,406,407,5,100,0,0,407,408,5,101,0, - 0,408,409,5,112,0,0,409,410,5,116,0,0,410,411,5,104,0,0,411,412,5,95, - 0,0,412,413,5,102,0,0,413,414,5,117,0,0,414,415,5,110,0,0,415,416,5,99, - 0,0,416,56,1,0,0,0,417,418,5,100,0,0,418,419,5,101,0,0,419,420,5,112, - 0,0,420,421,5,116,0,0,421,422,5,104,0,0,422,423,5,95,0,0,423,424,5,119, - 0,0,424,425,5,114,0,0,425,426,5,105,0,0,426,427,5,116,0,0,427,428,5,101, - 0,0,428,58,1,0,0,0,429,430,5,99,0,0,430,431,5,111,0,0,431,432,5,110,0, - 0,432,433,5,115,0,0,433,434,5,101,0,0,434,435,5,114,0,0,435,436,5,118, - 0,0,436,437,5,97,0,0,437,438,5,116,0,0,438,439,5,105,0,0,439,440,5,118, - 0,0,440,441,5,101,0,0,441,60,1,0,0,0,442,443,5,100,0,0,443,444,5,101, - 0,0,444,445,5,112,0,0,445,446,5,116,0,0,446,447,5,104,0,0,447,448,5,95, - 0,0,448,449,5,98,0,0,449,450,5,105,0,0,450,451,5,97,0,0,451,452,5,115, - 0,0,452,62,1,0,0,0,453,454,5,100,0,0,454,455,5,101,0,0,455,456,5,112, - 0,0,456,457,5,116,0,0,457,458,5,104,0,0,458,459,5,95,0,0,459,460,5,98, - 0,0,460,461,5,105,0,0,461,462,5,97,0,0,462,463,5,115,0,0,463,464,5,95, - 0,0,464,465,5,99,0,0,465,466,5,108,0,0,466,467,5,97,0,0,467,468,5,109, - 0,0,468,469,5,112,0,0,469,64,1,0,0,0,470,471,5,115,0,0,471,472,5,108, - 0,0,472,473,5,111,0,0,473,474,5,112,0,0,474,475,5,101,0,0,475,476,5,95, - 0,0,476,477,5,115,0,0,477,478,5,99,0,0,478,479,5,97,0,0,479,480,5,108, - 0,0,480,481,5,101,0,0,481,482,5,100,0,0,482,483,5,95,0,0,483,484,5,100, - 0,0,484,485,5,101,0,0,485,486,5,112,0,0,486,487,5,116,0,0,487,488,5,104, - 0,0,488,489,5,95,0,0,489,490,5,98,0,0,490,491,5,105,0,0,491,492,5,97, - 0,0,492,493,5,115,0,0,493,66,1,0,0,0,494,495,5,101,0,0,495,496,5,110, - 0,0,496,497,5,97,0,0,497,498,5,98,0,0,498,499,5,108,0,0,499,500,5,101, - 0,0,500,501,5,95,0,0,501,502,5,100,0,0,502,503,5,101,0,0,503,504,5,112, - 0,0,504,505,5,116,0,0,505,506,5,104,0,0,506,68,1,0,0,0,507,508,5,116, - 0,0,508,509,5,111,0,0,509,510,5,112,0,0,510,511,5,111,0,0,511,512,5,108, - 0,0,512,513,5,111,0,0,513,514,5,103,0,0,514,515,5,121,0,0,515,70,1,0, - 0,0,516,517,5,101,0,0,517,518,5,110,0,0,518,519,5,97,0,0,519,520,5,98, - 0,0,520,521,5,108,0,0,521,522,5,101,0,0,522,523,5,95,0,0,523,524,5,115, - 0,0,524,525,5,116,0,0,525,526,5,101,0,0,526,527,5,110,0,0,527,528,5,99, - 0,0,528,529,5,105,0,0,529,530,5,108,0,0,530,72,1,0,0,0,531,532,5,115, - 0,0,532,533,5,116,0,0,533,534,5,101,0,0,534,535,5,110,0,0,535,536,5,99, - 0,0,536,537,5,105,0,0,537,538,5,108,0,0,538,539,5,95,0,0,539,540,5,102, - 0,0,540,541,5,117,0,0,541,542,5,110,0,0,542,543,5,99,0,0,543,74,1,0,0, - 0,544,545,5,115,0,0,545,546,5,116,0,0,546,547,5,101,0,0,547,548,5,110, - 0,0,548,549,5,99,0,0,549,550,5,105,0,0,550,551,5,108,0,0,551,552,5,95, - 0,0,552,553,5,112,0,0,553,554,5,97,0,0,554,555,5,115,0,0,555,556,5,115, - 0,0,556,557,5,95,0,0,557,558,5,111,0,0,558,559,5,112,0,0,559,76,1,0,0, - 0,560,561,5,115,0,0,561,562,5,116,0,0,562,563,5,101,0,0,563,564,5,110, - 0,0,564,565,5,99,0,0,565,566,5,105,0,0,566,567,5,108,0,0,567,568,5,95, - 0,0,568,569,5,114,0,0,569,570,5,101,0,0,570,571,5,97,0,0,571,572,5,100, - 0,0,572,573,5,95,0,0,573,574,5,109,0,0,574,575,5,97,0,0,575,576,5,115, - 0,0,576,577,5,107,0,0,577,78,1,0,0,0,578,579,5,115,0,0,579,580,5,116, - 0,0,580,581,5,101,0,0,581,582,5,110,0,0,582,583,5,99,0,0,583,584,5,105, - 0,0,584,585,5,108,0,0,585,586,5,95,0,0,586,587,5,119,0,0,587,588,5,114, - 0,0,588,589,5,105,0,0,589,590,5,116,0,0,590,591,5,101,0,0,591,592,5,95, - 0,0,592,593,5,109,0,0,593,594,5,97,0,0,594,595,5,115,0,0,595,596,5,107, - 0,0,596,80,1,0,0,0,597,598,5,114,0,0,598,599,5,101,0,0,599,600,5,99,0, - 0,600,601,5,117,0,0,601,602,5,114,0,0,602,603,5,115,0,0,603,604,5,105, - 0,0,604,605,5,111,0,0,605,606,5,110,0,0,606,607,5,95,0,0,607,608,5,100, - 0,0,608,609,5,101,0,0,609,610,5,112,0,0,610,611,5,116,0,0,611,612,5,104, - 0,0,612,82,1,0,0,0,613,614,5,112,0,0,614,615,5,97,0,0,615,616,5,121,0, - 0,616,617,5,108,0,0,617,618,5,111,0,0,618,619,5,97,0,0,619,620,5,100, - 0,0,620,84,1,0,0,0,621,622,5,112,0,0,622,623,5,101,0,0,623,624,5,114, - 0,0,624,625,5,95,0,0,625,626,5,109,0,0,626,627,5,97,0,0,627,628,5,116, - 0,0,628,629,5,101,0,0,629,630,5,114,0,0,630,631,5,105,0,0,631,632,5,97, - 0,0,632,633,5,108,0,0,633,86,1,0,0,0,634,635,5,108,0,0,635,636,5,111, - 0,0,636,637,5,99,0,0,637,638,5,97,0,0,638,639,5,108,0,0,639,88,1,0,0, - 0,640,641,5,124,0,0,641,642,5,124,0,0,642,90,1,0,0,0,643,644,5,38,0,0, - 644,645,5,38,0,0,645,92,1,0,0,0,646,647,5,124,0,0,647,94,1,0,0,0,648, - 649,5,61,0,0,649,650,5,61,0,0,650,96,1,0,0,0,651,652,5,33,0,0,652,653, - 5,61,0,0,653,98,1,0,0,0,654,655,5,62,0,0,655,100,1,0,0,0,656,657,5,60, - 0,0,657,102,1,0,0,0,658,659,5,62,0,0,659,660,5,61,0,0,660,104,1,0,0,0, - 661,662,5,60,0,0,662,663,5,61,0,0,663,106,1,0,0,0,664,665,5,43,0,0,665, - 108,1,0,0,0,666,667,5,45,0,0,667,110,1,0,0,0,668,669,5,47,0,0,669,112, - 1,0,0,0,670,671,5,37,0,0,671,114,1,0,0,0,672,673,5,94,0,0,673,116,1,0, - 0,0,674,675,5,33,0,0,675,118,1,0,0,0,676,677,5,59,0,0,677,120,1,0,0,0, - 678,679,5,58,0,0,679,122,1,0,0,0,680,681,5,46,0,0,681,124,1,0,0,0,682, - 683,5,61,0,0,683,126,1,0,0,0,684,685,5,40,0,0,685,128,1,0,0,0,686,687, - 5,41,0,0,687,130,1,0,0,0,688,689,5,123,0,0,689,132,1,0,0,0,690,691,5, - 125,0,0,691,134,1,0,0,0,692,693,5,91,0,0,693,136,1,0,0,0,694,695,5,93, - 0,0,695,138,1,0,0,0,696,697,5,116,0,0,697,698,5,114,0,0,698,699,5,117, - 0,0,699,700,5,101,0,0,700,140,1,0,0,0,701,702,5,102,0,0,702,703,5,97, - 0,0,703,704,5,108,0,0,704,705,5,115,0,0,705,706,5,101,0,0,706,142,1,0, - 0,0,707,708,5,108,0,0,708,709,5,111,0,0,709,710,5,103,0,0,710,144,1,0, - 0,0,711,712,5,108,0,0,712,713,5,97,0,0,713,714,5,121,0,0,714,715,5,111, - 0,0,715,716,5,117,0,0,716,717,5,116,0,0,717,146,1,0,0,0,718,719,5,115, - 0,0,719,720,5,116,0,0,720,721,5,114,0,0,721,722,5,117,0,0,722,723,5,99, - 0,0,723,724,5,116,0,0,724,148,1,0,0,0,725,726,5,110,0,0,726,727,5,97, - 0,0,727,728,5,109,0,0,728,729,5,101,0,0,729,730,5,115,0,0,730,731,5,112, - 0,0,731,732,5,97,0,0,732,733,5,99,0,0,733,734,5,101,0,0,734,150,1,0,0, - 0,735,736,5,67,0,0,736,737,5,111,0,0,737,738,5,109,0,0,738,739,5,112, - 0,0,739,740,5,117,0,0,740,741,5,116,0,0,741,742,5,101,0,0,742,743,5,80, - 0,0,743,744,5,83,0,0,744,745,5,79,0,0,745,152,1,0,0,0,746,747,5,71,0, - 0,747,748,5,114,0,0,748,749,5,97,0,0,749,750,5,112,0,0,750,751,5,104, - 0,0,751,752,5,105,0,0,752,753,5,99,0,0,753,754,5,115,0,0,754,755,5,80, - 0,0,755,756,5,83,0,0,756,757,5,79,0,0,757,154,1,0,0,0,758,759,5,82,0, - 0,759,760,5,97,0,0,760,761,5,121,0,0,761,762,5,116,0,0,762,763,5,114, - 0,0,763,764,5,97,0,0,764,765,5,99,0,0,765,766,5,101,0,0,766,767,5,80, - 0,0,767,768,5,83,0,0,768,769,5,79,0,0,769,156,1,0,0,0,770,771,5,87,0, - 0,771,772,5,111,0,0,772,773,5,114,0,0,773,774,5,107,0,0,774,775,5,103, - 0,0,775,776,5,114,0,0,776,777,5,97,0,0,777,778,5,112,0,0,778,779,5,104, - 0,0,779,780,5,80,0,0,780,781,5,83,0,0,781,782,5,79,0,0,782,158,1,0,0, - 0,783,784,5,78,0,0,784,785,5,111,0,0,785,786,5,100,0,0,786,787,5,101, - 0,0,787,160,1,0,0,0,788,789,5,78,0,0,789,790,5,111,0,0,790,791,5,100, - 0,0,791,792,5,101,0,0,792,793,5,79,0,0,793,794,5,117,0,0,794,795,5,116, - 0,0,795,796,5,112,0,0,796,797,5,117,0,0,797,798,5,116,0,0,798,162,1,0, - 0,0,799,800,5,82,0,0,800,801,5,97,0,0,801,802,5,121,0,0,802,803,5,116, - 0,0,803,804,5,114,0,0,804,805,5,97,0,0,805,806,5,99,0,0,806,807,5,101, - 0,0,807,808,5,82,0,0,808,809,5,97,0,0,809,810,5,121,0,0,810,811,5,103, - 0,0,811,812,5,101,0,0,812,813,5,110,0,0,813,164,1,0,0,0,814,815,5,82, - 0,0,815,816,5,97,0,0,816,817,5,121,0,0,817,818,5,116,0,0,818,819,5,114, - 0,0,819,820,5,97,0,0,820,821,5,99,0,0,821,822,5,101,0,0,822,823,5,80, - 0,0,823,824,5,97,0,0,824,825,5,115,0,0,825,826,5,115,0,0,826,166,1,0, - 0,0,827,828,5,80,0,0,828,829,5,97,0,0,829,830,5,115,0,0,830,831,5,115, - 0,0,831,832,5,78,0,0,832,833,5,111,0,0,833,834,5,100,0,0,834,835,5,101, - 0,0,835,168,1,0,0,0,836,837,5,80,0,0,837,838,5,97,0,0,838,839,5,115,0, - 0,839,840,5,115,0,0,840,841,5,86,0,0,841,842,5,105,0,0,842,843,5,101, - 0,0,843,844,5,119,0,0,844,170,1,0,0,0,845,846,5,80,0,0,846,847,5,105, - 0,0,847,848,5,112,0,0,848,849,5,101,0,0,849,850,5,108,0,0,850,851,5,105, - 0,0,851,852,5,110,0,0,852,853,5,101,0,0,853,172,1,0,0,0,854,855,5,115, - 0,0,855,856,5,108,0,0,856,857,5,111,0,0,857,858,5,116,0,0,858,174,1,0, - 0,0,859,860,5,114,0,0,860,861,5,116,0,0,861,176,1,0,0,0,862,863,5,82, - 0,0,863,864,5,84,0,0,864,865,5,86,0,0,865,178,1,0,0,0,866,867,5,68,0, - 0,867,868,5,83,0,0,868,869,5,86,0,0,869,180,1,0,0,0,870,871,5,114,0,0, - 871,872,5,111,0,0,872,873,5,111,0,0,873,874,5,116,0,0,874,182,1,0,0,0, - 875,876,5,101,0,0,876,877,5,110,0,0,877,878,5,117,0,0,878,879,5,109,0, - 0,879,184,1,0,0,0,880,884,7,0,0,0,881,883,7,1,0,0,882,881,1,0,0,0,883, - 886,1,0,0,0,884,882,1,0,0,0,884,885,1,0,0,0,885,186,1,0,0,0,886,884,1, - 0,0,0,887,889,7,2,0,0,888,887,1,0,0,0,889,890,1,0,0,0,890,888,1,0,0,0, - 890,891,1,0,0,0,891,188,1,0,0,0,892,894,7,2,0,0,893,892,1,0,0,0,894,895, - 1,0,0,0,895,893,1,0,0,0,895,896,1,0,0,0,896,897,1,0,0,0,897,901,5,46, - 0,0,898,900,7,2,0,0,899,898,1,0,0,0,900,903,1,0,0,0,901,899,1,0,0,0,901, - 902,1,0,0,0,902,911,1,0,0,0,903,901,1,0,0,0,904,906,5,46,0,0,905,907, - 7,2,0,0,906,905,1,0,0,0,907,908,1,0,0,0,908,906,1,0,0,0,908,909,1,0,0, - 0,909,911,1,0,0,0,910,893,1,0,0,0,910,904,1,0,0,0,911,190,1,0,0,0,912, - 918,5,34,0,0,913,917,8,3,0,0,914,915,5,34,0,0,915,917,5,34,0,0,916,913, - 1,0,0,0,916,914,1,0,0,0,917,920,1,0,0,0,918,916,1,0,0,0,918,919,1,0,0, - 0,919,921,1,0,0,0,920,918,1,0,0,0,921,922,5,34,0,0,922,192,1,0,0,0,923, - 927,5,96,0,0,924,926,8,4,0,0,925,924,1,0,0,0,926,929,1,0,0,0,927,925, - 1,0,0,0,927,928,1,0,0,0,928,930,1,0,0,0,929,927,1,0,0,0,930,931,5,96, - 0,0,931,194,1,0,0,0,932,936,5,35,0,0,933,935,8,5,0,0,934,933,1,0,0,0, - 935,938,1,0,0,0,936,934,1,0,0,0,936,937,1,0,0,0,937,939,1,0,0,0,938,936, - 1,0,0,0,939,940,6,97,0,0,940,196,1,0,0,0,941,942,7,6,0,0,942,943,1,0, - 0,0,943,944,6,98,0,0,944,198,1,0,0,0,945,946,5,42,0,0,946,200,1,0,0,0, - 947,948,5,123,0,0,948,949,4,100,0,0,949,950,3,205,102,0,950,202,1,0,0, - 0,951,952,5,123,0,0,952,953,3,205,102,0,953,204,1,0,0,0,954,988,3,203, - 101,0,955,956,5,47,0,0,956,957,5,47,0,0,957,961,1,0,0,0,958,960,8,5,0, - 0,959,958,1,0,0,0,960,963,1,0,0,0,961,959,1,0,0,0,961,962,1,0,0,0,962, - 988,1,0,0,0,963,961,1,0,0,0,964,965,5,47,0,0,965,966,5,42,0,0,966,970, - 1,0,0,0,967,969,9,0,0,0,968,967,1,0,0,0,969,972,1,0,0,0,970,971,1,0,0, - 0,970,968,1,0,0,0,971,973,1,0,0,0,972,970,1,0,0,0,973,974,5,42,0,0,974, - 988,5,47,0,0,975,981,5,34,0,0,976,980,8,7,0,0,977,978,5,92,0,0,978,980, - 9,0,0,0,979,976,1,0,0,0,979,977,1,0,0,0,980,983,1,0,0,0,981,979,1,0,0, - 0,981,982,1,0,0,0,982,984,1,0,0,0,983,981,1,0,0,0,984,988,5,34,0,0,985, - 988,8,8,0,0,986,988,5,47,0,0,987,954,1,0,0,0,987,955,1,0,0,0,987,964, - 1,0,0,0,987,975,1,0,0,0,987,985,1,0,0,0,987,986,1,0,0,0,988,991,1,0,0, - 0,989,987,1,0,0,0,989,990,1,0,0,0,990,992,1,0,0,0,991,989,1,0,0,0,992, - 993,5,125,0,0,993,206,1,0,0,0,994,995,5,37,0,0,995,996,5,123,0,0,996, - 208,1,0,0,0,997,998,5,125,0,0,998,999,5,37,0,0,999,210,1,0,0,0,1000,1004, - 3,207,103,0,1001,1003,9,0,0,0,1002,1001,1,0,0,0,1003,1006,1,0,0,0,1004, - 1005,1,0,0,0,1004,1002,1,0,0,0,1005,1007,1,0,0,0,1006,1004,1,0,0,0,1007, - 1008,3,209,104,0,1008,212,1,0,0,0,18,0,884,890,895,901,908,910,916,918, - 927,936,961,970,979,981,987,989,1004,1,6,0,0 - }; - staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); - - antlr4::atn::ATNDeserializer deserializer; - staticData->atn = deserializer.deserialize(staticData->serializedATN); - - const size_t count = staticData->atn->getNumberOfDecisions(); - staticData->decisionToDFA.reserve(count); - for (size_t i = 0; i < count; i++) { - staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); - } - prismlexerLexerStaticData = staticData.release(); -} - -} - -PrismLexer::PrismLexer(CharStream *input) : Lexer(input) { - PrismLexer::initialize(); - _interpreter = new atn::LexerATNSimulator(this, *prismlexerLexerStaticData->atn, prismlexerLexerStaticData->decisionToDFA, prismlexerLexerStaticData->sharedContextCache); -} - -PrismLexer::~PrismLexer() { - delete _interpreter; -} - -std::string PrismLexer::getGrammarFileName() const { - return "Prism.g4"; -} - -const std::vector& PrismLexer::getRuleNames() const { - return prismlexerLexerStaticData->ruleNames; -} - -const std::vector& PrismLexer::getChannelNames() const { - return prismlexerLexerStaticData->channelNames; -} - -const std::vector& PrismLexer::getModeNames() const { - return prismlexerLexerStaticData->modeNames; -} - -const dfa::Vocabulary& PrismLexer::getVocabulary() const { - return prismlexerLexerStaticData->vocabulary; -} - -antlr4::atn::SerializedATNView PrismLexer::getSerializedATN() const { - return prismlexerLexerStaticData->serializedATN; -} - -const atn::ATN& PrismLexer::getATN() const { - return *prismlexerLexerStaticData->atn; -} - - -bool PrismLexer::sempred(RuleContext *context, size_t ruleIndex, size_t predicateIndex) { - switch (ruleIndex) { - case 100: return FUNC_BODYSempred(antlrcpp::downCast(context), predicateIndex); - - default: - break; - } - return true; -} - - -bool PrismLexer::FUNC_BODYSempred(antlr4::RuleContext *_localctx, size_t predicateIndex) { - switch (predicateIndex) { - case 0: return at_function_body(); - - default: - break; - } - return true; -} - - -void PrismLexer::initialize() { - ::antlr4::internal::call_once(prismlexerLexerOnceFlag, prismlexerLexerInitialize); -} diff --git a/sources/Prism/.antlr/PrismLexer.h b/sources/Prism/.antlr/PrismLexer.h deleted file mode 100644 index 6c3014a7b..000000000 --- a/sources/Prism/.antlr/PrismLexer.h +++ /dev/null @@ -1,90 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - -#pragma once - - -#include "antlr4-runtime.h" - - - - -class PrismLexer : public antlr4::Lexer { -public: - enum { - T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, T__5 = 6, T__6 = 7, - T__7 = 8, T__8 = 9, T__9 = 10, T__10 = 11, T__11 = 12, T__12 = 13, T__13 = 14, - T__14 = 15, T__15 = 16, T__16 = 17, T__17 = 18, T__18 = 19, T__19 = 20, - T__20 = 21, T__21 = 22, T__22 = 23, T__23 = 24, T__24 = 25, T__25 = 26, - T__26 = 27, T__27 = 28, T__28 = 29, T__29 = 30, T__30 = 31, T__31 = 32, - T__32 = 33, T__33 = 34, T__34 = 35, T__35 = 36, T__36 = 37, T__37 = 38, - T__38 = 39, T__39 = 40, T__40 = 41, T__41 = 42, T__42 = 43, T__43 = 44, - OR = 45, AND = 46, PIPE = 47, EQ = 48, NEQ = 49, GT = 50, LT = 51, GTEQ = 52, - LTEQ = 53, PLUS = 54, MINUS = 55, DIV = 56, MOD = 57, POW = 58, NOT = 59, - SCOL = 60, COLON = 61, DOT = 62, ASSIGN = 63, OPAR = 64, CPAR = 65, - OBRACE = 66, CBRACE = 67, OSBRACE = 68, CSBRACE = 69, TRUE = 70, FALSE = 71, - LOG = 72, LAYOUT = 73, STRUCT = 74, NAMESPACE = 75, COMPUTE_PSO = 76, - GRAPHICS_PSO = 77, RAYTRACE_PSO = 78, WORKGRAPH_PSO = 79, NODE = 80, - NODE_OUTPUT = 81, RAYTRACE_RAYGEN = 82, RAYTRACE_PASS = 83, PASS = 84, - VIEW = 85, PIPELINE = 86, SLOT = 87, RT = 88, RTV = 89, DSV = 90, ROOTSIG = 91, - ENUM = 92, ID = 93, INT_SCALAR = 94, FLOAT_SCALAR = 95, STRING = 96, - RAWEXPR = 97, COMMENT = 98, SPACE = 99, POINTER = 100, FUNC_BODY = 101, - INSERT_START = 102, INSERT_END = 103, INSERT_BLOCK = 104 - }; - - explicit PrismLexer(antlr4::CharStream *input); - - ~PrismLexer() override; - - - size_t last_types[3] = { 0, 0, 0 }; - - bool at_function_body() const - { - return last_types[0] == CPAR - || (last_types[0] == ID && last_types[1] == COLON && last_types[2] == CPAR); - } - - std::unique_ptr nextToken() override - { - auto token = antlr4::Lexer::nextToken(); - if (token->getChannel() == antlr4::Token::DEFAULT_CHANNEL) - { - last_types[2] = last_types[1]; - last_types[1] = last_types[0]; - last_types[0] = token->getType(); - } - return token; - } - - - std::string getGrammarFileName() const override; - - const std::vector& getRuleNames() const override; - - const std::vector& getChannelNames() const override; - - const std::vector& getModeNames() const override; - - const antlr4::dfa::Vocabulary& getVocabulary() const override; - - antlr4::atn::SerializedATNView getSerializedATN() const override; - - const antlr4::atn::ATN& getATN() const override; - - bool sempred(antlr4::RuleContext *_localctx, size_t ruleIndex, size_t predicateIndex) override; - - // By default the static state used to implement the lexer is lazily initialized during the first - // call to the constructor. You can call this function if you wish to initialize the static state - // ahead of time. - static void initialize(); - -private: - - // Individual action functions triggered by action() above. - - // Individual semantic predicate functions triggered by sempred() above. - bool FUNC_BODYSempred(antlr4::RuleContext *_localctx, size_t predicateIndex); - -}; - diff --git a/sources/Prism/.antlr/PrismLexer.interp b/sources/Prism/.antlr/PrismLexer.interp deleted file mode 100644 index d87de03ad..000000000 --- a/sources/Prism/.antlr/PrismLexer.interp +++ /dev/null @@ -1,331 +0,0 @@ -token literal names: -null -'const' -'::' -',' -'Sampler' -'define' -'rtv' -'blend' -'launch' -'entry' -'num_threads' -'max_dispatch_grid' -'input' -'compute' -'vertex' -'pixel' -'domain' -'hull' -'geometry' -'miss' -'closest_hit' -'any_hit' -'raygen' -'amplification' -'mesh' -'shader' -'ds' -'cull' -'depth_func' -'depth_write' -'conservative' -'depth_bias' -'depth_bias_clamp' -'slope_scaled_depth_bias' -'enable_depth' -'topology' -'enable_stencil' -'stencil_func' -'stencil_pass_op' -'stencil_read_mask' -'stencil_write_mask' -'recursion_depth' -'payload' -'per_material' -'local' -'||' -'&&' -'|' -'==' -'!=' -'>' -'<' -'>=' -'<=' -'+' -'-' -'/' -'%' -'^' -'!' -';' -':' -'.' -'=' -'(' -')' -'{' -'}' -'[' -']' -'true' -'false' -'log' -'layout' -'struct' -'namespace' -'ComputePSO' -'GraphicsPSO' -'RaytracePSO' -'WorkgraphPSO' -'Node' -'NodeOutput' -'RaytraceRaygen' -'RaytracePass' -'PassNode' -'PassView' -'Pipeline' -'slot' -'rt' -'RTV' -'DSV' -'root' -'enum' -null -null -null -null -null -null -null -'*' -null -'%{' -'}%' -null - -token symbolic names: -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -OR -AND -PIPE -EQ -NEQ -GT -LT -GTEQ -LTEQ -PLUS -MINUS -DIV -MOD -POW -NOT -SCOL -COLON -DOT -ASSIGN -OPAR -CPAR -OBRACE -CBRACE -OSBRACE -CSBRACE -TRUE -FALSE -LOG -LAYOUT -STRUCT -NAMESPACE -COMPUTE_PSO -GRAPHICS_PSO -RAYTRACE_PSO -WORKGRAPH_PSO -NODE -NODE_OUTPUT -RAYTRACE_RAYGEN -RAYTRACE_PASS -PASS -VIEW -PIPELINE -SLOT -RT -RTV -DSV -ROOTSIG -ENUM -ID -INT_SCALAR -FLOAT_SCALAR -STRING -RAWEXPR -COMMENT -SPACE -POINTER -FUNC_BODY -INSERT_START -INSERT_END -INSERT_BLOCK - -rule names: -T__0 -T__1 -T__2 -T__3 -T__4 -T__5 -T__6 -T__7 -T__8 -T__9 -T__10 -T__11 -T__12 -T__13 -T__14 -T__15 -T__16 -T__17 -T__18 -T__19 -T__20 -T__21 -T__22 -T__23 -T__24 -T__25 -T__26 -T__27 -T__28 -T__29 -T__30 -T__31 -T__32 -T__33 -T__34 -T__35 -T__36 -T__37 -T__38 -T__39 -T__40 -T__41 -T__42 -T__43 -OR -AND -PIPE -EQ -NEQ -GT -LT -GTEQ -LTEQ -PLUS -MINUS -DIV -MOD -POW -NOT -SCOL -COLON -DOT -ASSIGN -OPAR -CPAR -OBRACE -CBRACE -OSBRACE -CSBRACE -TRUE -FALSE -LOG -LAYOUT -STRUCT -NAMESPACE -COMPUTE_PSO -GRAPHICS_PSO -RAYTRACE_PSO -WORKGRAPH_PSO -NODE -NODE_OUTPUT -RAYTRACE_RAYGEN -RAYTRACE_PASS -PASS -VIEW -PIPELINE -SLOT -RT -RTV -DSV -ROOTSIG -ENUM -ID -INT_SCALAR -FLOAT_SCALAR -STRING -RAWEXPR -COMMENT -SPACE -POINTER -FUNC_BODY -FUNC_BLOCK -FUNC_BLOCK_TAIL -INSERT_START -INSERT_END -INSERT_BLOCK - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[4, 0, 104, 1009, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 57, 1, 57, 1, 58, 1, 58, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 64, 1, 64, 1, 65, 1, 65, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 5, 92, 883, 8, 92, 10, 92, 12, 92, 886, 9, 92, 1, 93, 4, 93, 889, 8, 93, 11, 93, 12, 93, 890, 1, 94, 4, 94, 894, 8, 94, 11, 94, 12, 94, 895, 1, 94, 1, 94, 5, 94, 900, 8, 94, 10, 94, 12, 94, 903, 9, 94, 1, 94, 1, 94, 4, 94, 907, 8, 94, 11, 94, 12, 94, 908, 3, 94, 911, 8, 94, 1, 95, 1, 95, 1, 95, 1, 95, 5, 95, 917, 8, 95, 10, 95, 12, 95, 920, 9, 95, 1, 95, 1, 95, 1, 96, 1, 96, 5, 96, 926, 8, 96, 10, 96, 12, 96, 929, 9, 96, 1, 96, 1, 96, 1, 97, 1, 97, 5, 97, 935, 8, 97, 10, 97, 12, 97, 938, 9, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 5, 102, 960, 8, 102, 10, 102, 12, 102, 963, 9, 102, 1, 102, 1, 102, 1, 102, 1, 102, 5, 102, 969, 8, 102, 10, 102, 12, 102, 972, 9, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 5, 102, 980, 8, 102, 10, 102, 12, 102, 983, 9, 102, 1, 102, 1, 102, 1, 102, 5, 102, 988, 8, 102, 10, 102, 12, 102, 991, 9, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 5, 105, 1003, 8, 105, 10, 105, 12, 105, 1006, 9, 105, 1, 105, 1, 105, 2, 970, 1004, 0, 106, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 0, 205, 0, 207, 102, 209, 103, 211, 104, 1, 0, 9, 3, 0, 65, 90, 95, 95, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 3, 0, 10, 10, 13, 13, 34, 34, 1, 0, 96, 96, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 13, 13, 32, 32, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 34, 34, 47, 47, 123, 123, 125, 125, 1027, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 1, 213, 1, 0, 0, 0, 3, 219, 1, 0, 0, 0, 5, 222, 1, 0, 0, 0, 7, 224, 1, 0, 0, 0, 9, 232, 1, 0, 0, 0, 11, 239, 1, 0, 0, 0, 13, 243, 1, 0, 0, 0, 15, 249, 1, 0, 0, 0, 17, 256, 1, 0, 0, 0, 19, 262, 1, 0, 0, 0, 21, 274, 1, 0, 0, 0, 23, 292, 1, 0, 0, 0, 25, 298, 1, 0, 0, 0, 27, 306, 1, 0, 0, 0, 29, 313, 1, 0, 0, 0, 31, 319, 1, 0, 0, 0, 33, 326, 1, 0, 0, 0, 35, 331, 1, 0, 0, 0, 37, 340, 1, 0, 0, 0, 39, 345, 1, 0, 0, 0, 41, 357, 1, 0, 0, 0, 43, 365, 1, 0, 0, 0, 45, 372, 1, 0, 0, 0, 47, 386, 1, 0, 0, 0, 49, 391, 1, 0, 0, 0, 51, 398, 1, 0, 0, 0, 53, 401, 1, 0, 0, 0, 55, 406, 1, 0, 0, 0, 57, 417, 1, 0, 0, 0, 59, 429, 1, 0, 0, 0, 61, 442, 1, 0, 0, 0, 63, 453, 1, 0, 0, 0, 65, 470, 1, 0, 0, 0, 67, 494, 1, 0, 0, 0, 69, 507, 1, 0, 0, 0, 71, 516, 1, 0, 0, 0, 73, 531, 1, 0, 0, 0, 75, 544, 1, 0, 0, 0, 77, 560, 1, 0, 0, 0, 79, 578, 1, 0, 0, 0, 81, 597, 1, 0, 0, 0, 83, 613, 1, 0, 0, 0, 85, 621, 1, 0, 0, 0, 87, 634, 1, 0, 0, 0, 89, 640, 1, 0, 0, 0, 91, 643, 1, 0, 0, 0, 93, 646, 1, 0, 0, 0, 95, 648, 1, 0, 0, 0, 97, 651, 1, 0, 0, 0, 99, 654, 1, 0, 0, 0, 101, 656, 1, 0, 0, 0, 103, 658, 1, 0, 0, 0, 105, 661, 1, 0, 0, 0, 107, 664, 1, 0, 0, 0, 109, 666, 1, 0, 0, 0, 111, 668, 1, 0, 0, 0, 113, 670, 1, 0, 0, 0, 115, 672, 1, 0, 0, 0, 117, 674, 1, 0, 0, 0, 119, 676, 1, 0, 0, 0, 121, 678, 1, 0, 0, 0, 123, 680, 1, 0, 0, 0, 125, 682, 1, 0, 0, 0, 127, 684, 1, 0, 0, 0, 129, 686, 1, 0, 0, 0, 131, 688, 1, 0, 0, 0, 133, 690, 1, 0, 0, 0, 135, 692, 1, 0, 0, 0, 137, 694, 1, 0, 0, 0, 139, 696, 1, 0, 0, 0, 141, 701, 1, 0, 0, 0, 143, 707, 1, 0, 0, 0, 145, 711, 1, 0, 0, 0, 147, 718, 1, 0, 0, 0, 149, 725, 1, 0, 0, 0, 151, 735, 1, 0, 0, 0, 153, 746, 1, 0, 0, 0, 155, 758, 1, 0, 0, 0, 157, 770, 1, 0, 0, 0, 159, 783, 1, 0, 0, 0, 161, 788, 1, 0, 0, 0, 163, 799, 1, 0, 0, 0, 165, 814, 1, 0, 0, 0, 167, 827, 1, 0, 0, 0, 169, 836, 1, 0, 0, 0, 171, 845, 1, 0, 0, 0, 173, 854, 1, 0, 0, 0, 175, 859, 1, 0, 0, 0, 177, 862, 1, 0, 0, 0, 179, 866, 1, 0, 0, 0, 181, 870, 1, 0, 0, 0, 183, 875, 1, 0, 0, 0, 185, 880, 1, 0, 0, 0, 187, 888, 1, 0, 0, 0, 189, 910, 1, 0, 0, 0, 191, 912, 1, 0, 0, 0, 193, 923, 1, 0, 0, 0, 195, 932, 1, 0, 0, 0, 197, 941, 1, 0, 0, 0, 199, 945, 1, 0, 0, 0, 201, 947, 1, 0, 0, 0, 203, 951, 1, 0, 0, 0, 205, 989, 1, 0, 0, 0, 207, 994, 1, 0, 0, 0, 209, 997, 1, 0, 0, 0, 211, 1000, 1, 0, 0, 0, 213, 214, 5, 99, 0, 0, 214, 215, 5, 111, 0, 0, 215, 216, 5, 110, 0, 0, 216, 217, 5, 115, 0, 0, 217, 218, 5, 116, 0, 0, 218, 2, 1, 0, 0, 0, 219, 220, 5, 58, 0, 0, 220, 221, 5, 58, 0, 0, 221, 4, 1, 0, 0, 0, 222, 223, 5, 44, 0, 0, 223, 6, 1, 0, 0, 0, 224, 225, 5, 83, 0, 0, 225, 226, 5, 97, 0, 0, 226, 227, 5, 109, 0, 0, 227, 228, 5, 112, 0, 0, 228, 229, 5, 108, 0, 0, 229, 230, 5, 101, 0, 0, 230, 231, 5, 114, 0, 0, 231, 8, 1, 0, 0, 0, 232, 233, 5, 100, 0, 0, 233, 234, 5, 101, 0, 0, 234, 235, 5, 102, 0, 0, 235, 236, 5, 105, 0, 0, 236, 237, 5, 110, 0, 0, 237, 238, 5, 101, 0, 0, 238, 10, 1, 0, 0, 0, 239, 240, 5, 114, 0, 0, 240, 241, 5, 116, 0, 0, 241, 242, 5, 118, 0, 0, 242, 12, 1, 0, 0, 0, 243, 244, 5, 98, 0, 0, 244, 245, 5, 108, 0, 0, 245, 246, 5, 101, 0, 0, 246, 247, 5, 110, 0, 0, 247, 248, 5, 100, 0, 0, 248, 14, 1, 0, 0, 0, 249, 250, 5, 108, 0, 0, 250, 251, 5, 97, 0, 0, 251, 252, 5, 117, 0, 0, 252, 253, 5, 110, 0, 0, 253, 254, 5, 99, 0, 0, 254, 255, 5, 104, 0, 0, 255, 16, 1, 0, 0, 0, 256, 257, 5, 101, 0, 0, 257, 258, 5, 110, 0, 0, 258, 259, 5, 116, 0, 0, 259, 260, 5, 114, 0, 0, 260, 261, 5, 121, 0, 0, 261, 18, 1, 0, 0, 0, 262, 263, 5, 110, 0, 0, 263, 264, 5, 117, 0, 0, 264, 265, 5, 109, 0, 0, 265, 266, 5, 95, 0, 0, 266, 267, 5, 116, 0, 0, 267, 268, 5, 104, 0, 0, 268, 269, 5, 114, 0, 0, 269, 270, 5, 101, 0, 0, 270, 271, 5, 97, 0, 0, 271, 272, 5, 100, 0, 0, 272, 273, 5, 115, 0, 0, 273, 20, 1, 0, 0, 0, 274, 275, 5, 109, 0, 0, 275, 276, 5, 97, 0, 0, 276, 277, 5, 120, 0, 0, 277, 278, 5, 95, 0, 0, 278, 279, 5, 100, 0, 0, 279, 280, 5, 105, 0, 0, 280, 281, 5, 115, 0, 0, 281, 282, 5, 112, 0, 0, 282, 283, 5, 97, 0, 0, 283, 284, 5, 116, 0, 0, 284, 285, 5, 99, 0, 0, 285, 286, 5, 104, 0, 0, 286, 287, 5, 95, 0, 0, 287, 288, 5, 103, 0, 0, 288, 289, 5, 114, 0, 0, 289, 290, 5, 105, 0, 0, 290, 291, 5, 100, 0, 0, 291, 22, 1, 0, 0, 0, 292, 293, 5, 105, 0, 0, 293, 294, 5, 110, 0, 0, 294, 295, 5, 112, 0, 0, 295, 296, 5, 117, 0, 0, 296, 297, 5, 116, 0, 0, 297, 24, 1, 0, 0, 0, 298, 299, 5, 99, 0, 0, 299, 300, 5, 111, 0, 0, 300, 301, 5, 109, 0, 0, 301, 302, 5, 112, 0, 0, 302, 303, 5, 117, 0, 0, 303, 304, 5, 116, 0, 0, 304, 305, 5, 101, 0, 0, 305, 26, 1, 0, 0, 0, 306, 307, 5, 118, 0, 0, 307, 308, 5, 101, 0, 0, 308, 309, 5, 114, 0, 0, 309, 310, 5, 116, 0, 0, 310, 311, 5, 101, 0, 0, 311, 312, 5, 120, 0, 0, 312, 28, 1, 0, 0, 0, 313, 314, 5, 112, 0, 0, 314, 315, 5, 105, 0, 0, 315, 316, 5, 120, 0, 0, 316, 317, 5, 101, 0, 0, 317, 318, 5, 108, 0, 0, 318, 30, 1, 0, 0, 0, 319, 320, 5, 100, 0, 0, 320, 321, 5, 111, 0, 0, 321, 322, 5, 109, 0, 0, 322, 323, 5, 97, 0, 0, 323, 324, 5, 105, 0, 0, 324, 325, 5, 110, 0, 0, 325, 32, 1, 0, 0, 0, 326, 327, 5, 104, 0, 0, 327, 328, 5, 117, 0, 0, 328, 329, 5, 108, 0, 0, 329, 330, 5, 108, 0, 0, 330, 34, 1, 0, 0, 0, 331, 332, 5, 103, 0, 0, 332, 333, 5, 101, 0, 0, 333, 334, 5, 111, 0, 0, 334, 335, 5, 109, 0, 0, 335, 336, 5, 101, 0, 0, 336, 337, 5, 116, 0, 0, 337, 338, 5, 114, 0, 0, 338, 339, 5, 121, 0, 0, 339, 36, 1, 0, 0, 0, 340, 341, 5, 109, 0, 0, 341, 342, 5, 105, 0, 0, 342, 343, 5, 115, 0, 0, 343, 344, 5, 115, 0, 0, 344, 38, 1, 0, 0, 0, 345, 346, 5, 99, 0, 0, 346, 347, 5, 108, 0, 0, 347, 348, 5, 111, 0, 0, 348, 349, 5, 115, 0, 0, 349, 350, 5, 101, 0, 0, 350, 351, 5, 115, 0, 0, 351, 352, 5, 116, 0, 0, 352, 353, 5, 95, 0, 0, 353, 354, 5, 104, 0, 0, 354, 355, 5, 105, 0, 0, 355, 356, 5, 116, 0, 0, 356, 40, 1, 0, 0, 0, 357, 358, 5, 97, 0, 0, 358, 359, 5, 110, 0, 0, 359, 360, 5, 121, 0, 0, 360, 361, 5, 95, 0, 0, 361, 362, 5, 104, 0, 0, 362, 363, 5, 105, 0, 0, 363, 364, 5, 116, 0, 0, 364, 42, 1, 0, 0, 0, 365, 366, 5, 114, 0, 0, 366, 367, 5, 97, 0, 0, 367, 368, 5, 121, 0, 0, 368, 369, 5, 103, 0, 0, 369, 370, 5, 101, 0, 0, 370, 371, 5, 110, 0, 0, 371, 44, 1, 0, 0, 0, 372, 373, 5, 97, 0, 0, 373, 374, 5, 109, 0, 0, 374, 375, 5, 112, 0, 0, 375, 376, 5, 108, 0, 0, 376, 377, 5, 105, 0, 0, 377, 378, 5, 102, 0, 0, 378, 379, 5, 105, 0, 0, 379, 380, 5, 99, 0, 0, 380, 381, 5, 97, 0, 0, 381, 382, 5, 116, 0, 0, 382, 383, 5, 105, 0, 0, 383, 384, 5, 111, 0, 0, 384, 385, 5, 110, 0, 0, 385, 46, 1, 0, 0, 0, 386, 387, 5, 109, 0, 0, 387, 388, 5, 101, 0, 0, 388, 389, 5, 115, 0, 0, 389, 390, 5, 104, 0, 0, 390, 48, 1, 0, 0, 0, 391, 392, 5, 115, 0, 0, 392, 393, 5, 104, 0, 0, 393, 394, 5, 97, 0, 0, 394, 395, 5, 100, 0, 0, 395, 396, 5, 101, 0, 0, 396, 397, 5, 114, 0, 0, 397, 50, 1, 0, 0, 0, 398, 399, 5, 100, 0, 0, 399, 400, 5, 115, 0, 0, 400, 52, 1, 0, 0, 0, 401, 402, 5, 99, 0, 0, 402, 403, 5, 117, 0, 0, 403, 404, 5, 108, 0, 0, 404, 405, 5, 108, 0, 0, 405, 54, 1, 0, 0, 0, 406, 407, 5, 100, 0, 0, 407, 408, 5, 101, 0, 0, 408, 409, 5, 112, 0, 0, 409, 410, 5, 116, 0, 0, 410, 411, 5, 104, 0, 0, 411, 412, 5, 95, 0, 0, 412, 413, 5, 102, 0, 0, 413, 414, 5, 117, 0, 0, 414, 415, 5, 110, 0, 0, 415, 416, 5, 99, 0, 0, 416, 56, 1, 0, 0, 0, 417, 418, 5, 100, 0, 0, 418, 419, 5, 101, 0, 0, 419, 420, 5, 112, 0, 0, 420, 421, 5, 116, 0, 0, 421, 422, 5, 104, 0, 0, 422, 423, 5, 95, 0, 0, 423, 424, 5, 119, 0, 0, 424, 425, 5, 114, 0, 0, 425, 426, 5, 105, 0, 0, 426, 427, 5, 116, 0, 0, 427, 428, 5, 101, 0, 0, 428, 58, 1, 0, 0, 0, 429, 430, 5, 99, 0, 0, 430, 431, 5, 111, 0, 0, 431, 432, 5, 110, 0, 0, 432, 433, 5, 115, 0, 0, 433, 434, 5, 101, 0, 0, 434, 435, 5, 114, 0, 0, 435, 436, 5, 118, 0, 0, 436, 437, 5, 97, 0, 0, 437, 438, 5, 116, 0, 0, 438, 439, 5, 105, 0, 0, 439, 440, 5, 118, 0, 0, 440, 441, 5, 101, 0, 0, 441, 60, 1, 0, 0, 0, 442, 443, 5, 100, 0, 0, 443, 444, 5, 101, 0, 0, 444, 445, 5, 112, 0, 0, 445, 446, 5, 116, 0, 0, 446, 447, 5, 104, 0, 0, 447, 448, 5, 95, 0, 0, 448, 449, 5, 98, 0, 0, 449, 450, 5, 105, 0, 0, 450, 451, 5, 97, 0, 0, 451, 452, 5, 115, 0, 0, 452, 62, 1, 0, 0, 0, 453, 454, 5, 100, 0, 0, 454, 455, 5, 101, 0, 0, 455, 456, 5, 112, 0, 0, 456, 457, 5, 116, 0, 0, 457, 458, 5, 104, 0, 0, 458, 459, 5, 95, 0, 0, 459, 460, 5, 98, 0, 0, 460, 461, 5, 105, 0, 0, 461, 462, 5, 97, 0, 0, 462, 463, 5, 115, 0, 0, 463, 464, 5, 95, 0, 0, 464, 465, 5, 99, 0, 0, 465, 466, 5, 108, 0, 0, 466, 467, 5, 97, 0, 0, 467, 468, 5, 109, 0, 0, 468, 469, 5, 112, 0, 0, 469, 64, 1, 0, 0, 0, 470, 471, 5, 115, 0, 0, 471, 472, 5, 108, 0, 0, 472, 473, 5, 111, 0, 0, 473, 474, 5, 112, 0, 0, 474, 475, 5, 101, 0, 0, 475, 476, 5, 95, 0, 0, 476, 477, 5, 115, 0, 0, 477, 478, 5, 99, 0, 0, 478, 479, 5, 97, 0, 0, 479, 480, 5, 108, 0, 0, 480, 481, 5, 101, 0, 0, 481, 482, 5, 100, 0, 0, 482, 483, 5, 95, 0, 0, 483, 484, 5, 100, 0, 0, 484, 485, 5, 101, 0, 0, 485, 486, 5, 112, 0, 0, 486, 487, 5, 116, 0, 0, 487, 488, 5, 104, 0, 0, 488, 489, 5, 95, 0, 0, 489, 490, 5, 98, 0, 0, 490, 491, 5, 105, 0, 0, 491, 492, 5, 97, 0, 0, 492, 493, 5, 115, 0, 0, 493, 66, 1, 0, 0, 0, 494, 495, 5, 101, 0, 0, 495, 496, 5, 110, 0, 0, 496, 497, 5, 97, 0, 0, 497, 498, 5, 98, 0, 0, 498, 499, 5, 108, 0, 0, 499, 500, 5, 101, 0, 0, 500, 501, 5, 95, 0, 0, 501, 502, 5, 100, 0, 0, 502, 503, 5, 101, 0, 0, 503, 504, 5, 112, 0, 0, 504, 505, 5, 116, 0, 0, 505, 506, 5, 104, 0, 0, 506, 68, 1, 0, 0, 0, 507, 508, 5, 116, 0, 0, 508, 509, 5, 111, 0, 0, 509, 510, 5, 112, 0, 0, 510, 511, 5, 111, 0, 0, 511, 512, 5, 108, 0, 0, 512, 513, 5, 111, 0, 0, 513, 514, 5, 103, 0, 0, 514, 515, 5, 121, 0, 0, 515, 70, 1, 0, 0, 0, 516, 517, 5, 101, 0, 0, 517, 518, 5, 110, 0, 0, 518, 519, 5, 97, 0, 0, 519, 520, 5, 98, 0, 0, 520, 521, 5, 108, 0, 0, 521, 522, 5, 101, 0, 0, 522, 523, 5, 95, 0, 0, 523, 524, 5, 115, 0, 0, 524, 525, 5, 116, 0, 0, 525, 526, 5, 101, 0, 0, 526, 527, 5, 110, 0, 0, 527, 528, 5, 99, 0, 0, 528, 529, 5, 105, 0, 0, 529, 530, 5, 108, 0, 0, 530, 72, 1, 0, 0, 0, 531, 532, 5, 115, 0, 0, 532, 533, 5, 116, 0, 0, 533, 534, 5, 101, 0, 0, 534, 535, 5, 110, 0, 0, 535, 536, 5, 99, 0, 0, 536, 537, 5, 105, 0, 0, 537, 538, 5, 108, 0, 0, 538, 539, 5, 95, 0, 0, 539, 540, 5, 102, 0, 0, 540, 541, 5, 117, 0, 0, 541, 542, 5, 110, 0, 0, 542, 543, 5, 99, 0, 0, 543, 74, 1, 0, 0, 0, 544, 545, 5, 115, 0, 0, 545, 546, 5, 116, 0, 0, 546, 547, 5, 101, 0, 0, 547, 548, 5, 110, 0, 0, 548, 549, 5, 99, 0, 0, 549, 550, 5, 105, 0, 0, 550, 551, 5, 108, 0, 0, 551, 552, 5, 95, 0, 0, 552, 553, 5, 112, 0, 0, 553, 554, 5, 97, 0, 0, 554, 555, 5, 115, 0, 0, 555, 556, 5, 115, 0, 0, 556, 557, 5, 95, 0, 0, 557, 558, 5, 111, 0, 0, 558, 559, 5, 112, 0, 0, 559, 76, 1, 0, 0, 0, 560, 561, 5, 115, 0, 0, 561, 562, 5, 116, 0, 0, 562, 563, 5, 101, 0, 0, 563, 564, 5, 110, 0, 0, 564, 565, 5, 99, 0, 0, 565, 566, 5, 105, 0, 0, 566, 567, 5, 108, 0, 0, 567, 568, 5, 95, 0, 0, 568, 569, 5, 114, 0, 0, 569, 570, 5, 101, 0, 0, 570, 571, 5, 97, 0, 0, 571, 572, 5, 100, 0, 0, 572, 573, 5, 95, 0, 0, 573, 574, 5, 109, 0, 0, 574, 575, 5, 97, 0, 0, 575, 576, 5, 115, 0, 0, 576, 577, 5, 107, 0, 0, 577, 78, 1, 0, 0, 0, 578, 579, 5, 115, 0, 0, 579, 580, 5, 116, 0, 0, 580, 581, 5, 101, 0, 0, 581, 582, 5, 110, 0, 0, 582, 583, 5, 99, 0, 0, 583, 584, 5, 105, 0, 0, 584, 585, 5, 108, 0, 0, 585, 586, 5, 95, 0, 0, 586, 587, 5, 119, 0, 0, 587, 588, 5, 114, 0, 0, 588, 589, 5, 105, 0, 0, 589, 590, 5, 116, 0, 0, 590, 591, 5, 101, 0, 0, 591, 592, 5, 95, 0, 0, 592, 593, 5, 109, 0, 0, 593, 594, 5, 97, 0, 0, 594, 595, 5, 115, 0, 0, 595, 596, 5, 107, 0, 0, 596, 80, 1, 0, 0, 0, 597, 598, 5, 114, 0, 0, 598, 599, 5, 101, 0, 0, 599, 600, 5, 99, 0, 0, 600, 601, 5, 117, 0, 0, 601, 602, 5, 114, 0, 0, 602, 603, 5, 115, 0, 0, 603, 604, 5, 105, 0, 0, 604, 605, 5, 111, 0, 0, 605, 606, 5, 110, 0, 0, 606, 607, 5, 95, 0, 0, 607, 608, 5, 100, 0, 0, 608, 609, 5, 101, 0, 0, 609, 610, 5, 112, 0, 0, 610, 611, 5, 116, 0, 0, 611, 612, 5, 104, 0, 0, 612, 82, 1, 0, 0, 0, 613, 614, 5, 112, 0, 0, 614, 615, 5, 97, 0, 0, 615, 616, 5, 121, 0, 0, 616, 617, 5, 108, 0, 0, 617, 618, 5, 111, 0, 0, 618, 619, 5, 97, 0, 0, 619, 620, 5, 100, 0, 0, 620, 84, 1, 0, 0, 0, 621, 622, 5, 112, 0, 0, 622, 623, 5, 101, 0, 0, 623, 624, 5, 114, 0, 0, 624, 625, 5, 95, 0, 0, 625, 626, 5, 109, 0, 0, 626, 627, 5, 97, 0, 0, 627, 628, 5, 116, 0, 0, 628, 629, 5, 101, 0, 0, 629, 630, 5, 114, 0, 0, 630, 631, 5, 105, 0, 0, 631, 632, 5, 97, 0, 0, 632, 633, 5, 108, 0, 0, 633, 86, 1, 0, 0, 0, 634, 635, 5, 108, 0, 0, 635, 636, 5, 111, 0, 0, 636, 637, 5, 99, 0, 0, 637, 638, 5, 97, 0, 0, 638, 639, 5, 108, 0, 0, 639, 88, 1, 0, 0, 0, 640, 641, 5, 124, 0, 0, 641, 642, 5, 124, 0, 0, 642, 90, 1, 0, 0, 0, 643, 644, 5, 38, 0, 0, 644, 645, 5, 38, 0, 0, 645, 92, 1, 0, 0, 0, 646, 647, 5, 124, 0, 0, 647, 94, 1, 0, 0, 0, 648, 649, 5, 61, 0, 0, 649, 650, 5, 61, 0, 0, 650, 96, 1, 0, 0, 0, 651, 652, 5, 33, 0, 0, 652, 653, 5, 61, 0, 0, 653, 98, 1, 0, 0, 0, 654, 655, 5, 62, 0, 0, 655, 100, 1, 0, 0, 0, 656, 657, 5, 60, 0, 0, 657, 102, 1, 0, 0, 0, 658, 659, 5, 62, 0, 0, 659, 660, 5, 61, 0, 0, 660, 104, 1, 0, 0, 0, 661, 662, 5, 60, 0, 0, 662, 663, 5, 61, 0, 0, 663, 106, 1, 0, 0, 0, 664, 665, 5, 43, 0, 0, 665, 108, 1, 0, 0, 0, 666, 667, 5, 45, 0, 0, 667, 110, 1, 0, 0, 0, 668, 669, 5, 47, 0, 0, 669, 112, 1, 0, 0, 0, 670, 671, 5, 37, 0, 0, 671, 114, 1, 0, 0, 0, 672, 673, 5, 94, 0, 0, 673, 116, 1, 0, 0, 0, 674, 675, 5, 33, 0, 0, 675, 118, 1, 0, 0, 0, 676, 677, 5, 59, 0, 0, 677, 120, 1, 0, 0, 0, 678, 679, 5, 58, 0, 0, 679, 122, 1, 0, 0, 0, 680, 681, 5, 46, 0, 0, 681, 124, 1, 0, 0, 0, 682, 683, 5, 61, 0, 0, 683, 126, 1, 0, 0, 0, 684, 685, 5, 40, 0, 0, 685, 128, 1, 0, 0, 0, 686, 687, 5, 41, 0, 0, 687, 130, 1, 0, 0, 0, 688, 689, 5, 123, 0, 0, 689, 132, 1, 0, 0, 0, 690, 691, 5, 125, 0, 0, 691, 134, 1, 0, 0, 0, 692, 693, 5, 91, 0, 0, 693, 136, 1, 0, 0, 0, 694, 695, 5, 93, 0, 0, 695, 138, 1, 0, 0, 0, 696, 697, 5, 116, 0, 0, 697, 698, 5, 114, 0, 0, 698, 699, 5, 117, 0, 0, 699, 700, 5, 101, 0, 0, 700, 140, 1, 0, 0, 0, 701, 702, 5, 102, 0, 0, 702, 703, 5, 97, 0, 0, 703, 704, 5, 108, 0, 0, 704, 705, 5, 115, 0, 0, 705, 706, 5, 101, 0, 0, 706, 142, 1, 0, 0, 0, 707, 708, 5, 108, 0, 0, 708, 709, 5, 111, 0, 0, 709, 710, 5, 103, 0, 0, 710, 144, 1, 0, 0, 0, 711, 712, 5, 108, 0, 0, 712, 713, 5, 97, 0, 0, 713, 714, 5, 121, 0, 0, 714, 715, 5, 111, 0, 0, 715, 716, 5, 117, 0, 0, 716, 717, 5, 116, 0, 0, 717, 146, 1, 0, 0, 0, 718, 719, 5, 115, 0, 0, 719, 720, 5, 116, 0, 0, 720, 721, 5, 114, 0, 0, 721, 722, 5, 117, 0, 0, 722, 723, 5, 99, 0, 0, 723, 724, 5, 116, 0, 0, 724, 148, 1, 0, 0, 0, 725, 726, 5, 110, 0, 0, 726, 727, 5, 97, 0, 0, 727, 728, 5, 109, 0, 0, 728, 729, 5, 101, 0, 0, 729, 730, 5, 115, 0, 0, 730, 731, 5, 112, 0, 0, 731, 732, 5, 97, 0, 0, 732, 733, 5, 99, 0, 0, 733, 734, 5, 101, 0, 0, 734, 150, 1, 0, 0, 0, 735, 736, 5, 67, 0, 0, 736, 737, 5, 111, 0, 0, 737, 738, 5, 109, 0, 0, 738, 739, 5, 112, 0, 0, 739, 740, 5, 117, 0, 0, 740, 741, 5, 116, 0, 0, 741, 742, 5, 101, 0, 0, 742, 743, 5, 80, 0, 0, 743, 744, 5, 83, 0, 0, 744, 745, 5, 79, 0, 0, 745, 152, 1, 0, 0, 0, 746, 747, 5, 71, 0, 0, 747, 748, 5, 114, 0, 0, 748, 749, 5, 97, 0, 0, 749, 750, 5, 112, 0, 0, 750, 751, 5, 104, 0, 0, 751, 752, 5, 105, 0, 0, 752, 753, 5, 99, 0, 0, 753, 754, 5, 115, 0, 0, 754, 755, 5, 80, 0, 0, 755, 756, 5, 83, 0, 0, 756, 757, 5, 79, 0, 0, 757, 154, 1, 0, 0, 0, 758, 759, 5, 82, 0, 0, 759, 760, 5, 97, 0, 0, 760, 761, 5, 121, 0, 0, 761, 762, 5, 116, 0, 0, 762, 763, 5, 114, 0, 0, 763, 764, 5, 97, 0, 0, 764, 765, 5, 99, 0, 0, 765, 766, 5, 101, 0, 0, 766, 767, 5, 80, 0, 0, 767, 768, 5, 83, 0, 0, 768, 769, 5, 79, 0, 0, 769, 156, 1, 0, 0, 0, 770, 771, 5, 87, 0, 0, 771, 772, 5, 111, 0, 0, 772, 773, 5, 114, 0, 0, 773, 774, 5, 107, 0, 0, 774, 775, 5, 103, 0, 0, 775, 776, 5, 114, 0, 0, 776, 777, 5, 97, 0, 0, 777, 778, 5, 112, 0, 0, 778, 779, 5, 104, 0, 0, 779, 780, 5, 80, 0, 0, 780, 781, 5, 83, 0, 0, 781, 782, 5, 79, 0, 0, 782, 158, 1, 0, 0, 0, 783, 784, 5, 78, 0, 0, 784, 785, 5, 111, 0, 0, 785, 786, 5, 100, 0, 0, 786, 787, 5, 101, 0, 0, 787, 160, 1, 0, 0, 0, 788, 789, 5, 78, 0, 0, 789, 790, 5, 111, 0, 0, 790, 791, 5, 100, 0, 0, 791, 792, 5, 101, 0, 0, 792, 793, 5, 79, 0, 0, 793, 794, 5, 117, 0, 0, 794, 795, 5, 116, 0, 0, 795, 796, 5, 112, 0, 0, 796, 797, 5, 117, 0, 0, 797, 798, 5, 116, 0, 0, 798, 162, 1, 0, 0, 0, 799, 800, 5, 82, 0, 0, 800, 801, 5, 97, 0, 0, 801, 802, 5, 121, 0, 0, 802, 803, 5, 116, 0, 0, 803, 804, 5, 114, 0, 0, 804, 805, 5, 97, 0, 0, 805, 806, 5, 99, 0, 0, 806, 807, 5, 101, 0, 0, 807, 808, 5, 82, 0, 0, 808, 809, 5, 97, 0, 0, 809, 810, 5, 121, 0, 0, 810, 811, 5, 103, 0, 0, 811, 812, 5, 101, 0, 0, 812, 813, 5, 110, 0, 0, 813, 164, 1, 0, 0, 0, 814, 815, 5, 82, 0, 0, 815, 816, 5, 97, 0, 0, 816, 817, 5, 121, 0, 0, 817, 818, 5, 116, 0, 0, 818, 819, 5, 114, 0, 0, 819, 820, 5, 97, 0, 0, 820, 821, 5, 99, 0, 0, 821, 822, 5, 101, 0, 0, 822, 823, 5, 80, 0, 0, 823, 824, 5, 97, 0, 0, 824, 825, 5, 115, 0, 0, 825, 826, 5, 115, 0, 0, 826, 166, 1, 0, 0, 0, 827, 828, 5, 80, 0, 0, 828, 829, 5, 97, 0, 0, 829, 830, 5, 115, 0, 0, 830, 831, 5, 115, 0, 0, 831, 832, 5, 78, 0, 0, 832, 833, 5, 111, 0, 0, 833, 834, 5, 100, 0, 0, 834, 835, 5, 101, 0, 0, 835, 168, 1, 0, 0, 0, 836, 837, 5, 80, 0, 0, 837, 838, 5, 97, 0, 0, 838, 839, 5, 115, 0, 0, 839, 840, 5, 115, 0, 0, 840, 841, 5, 86, 0, 0, 841, 842, 5, 105, 0, 0, 842, 843, 5, 101, 0, 0, 843, 844, 5, 119, 0, 0, 844, 170, 1, 0, 0, 0, 845, 846, 5, 80, 0, 0, 846, 847, 5, 105, 0, 0, 847, 848, 5, 112, 0, 0, 848, 849, 5, 101, 0, 0, 849, 850, 5, 108, 0, 0, 850, 851, 5, 105, 0, 0, 851, 852, 5, 110, 0, 0, 852, 853, 5, 101, 0, 0, 853, 172, 1, 0, 0, 0, 854, 855, 5, 115, 0, 0, 855, 856, 5, 108, 0, 0, 856, 857, 5, 111, 0, 0, 857, 858, 5, 116, 0, 0, 858, 174, 1, 0, 0, 0, 859, 860, 5, 114, 0, 0, 860, 861, 5, 116, 0, 0, 861, 176, 1, 0, 0, 0, 862, 863, 5, 82, 0, 0, 863, 864, 5, 84, 0, 0, 864, 865, 5, 86, 0, 0, 865, 178, 1, 0, 0, 0, 866, 867, 5, 68, 0, 0, 867, 868, 5, 83, 0, 0, 868, 869, 5, 86, 0, 0, 869, 180, 1, 0, 0, 0, 870, 871, 5, 114, 0, 0, 871, 872, 5, 111, 0, 0, 872, 873, 5, 111, 0, 0, 873, 874, 5, 116, 0, 0, 874, 182, 1, 0, 0, 0, 875, 876, 5, 101, 0, 0, 876, 877, 5, 110, 0, 0, 877, 878, 5, 117, 0, 0, 878, 879, 5, 109, 0, 0, 879, 184, 1, 0, 0, 0, 880, 884, 7, 0, 0, 0, 881, 883, 7, 1, 0, 0, 882, 881, 1, 0, 0, 0, 883, 886, 1, 0, 0, 0, 884, 882, 1, 0, 0, 0, 884, 885, 1, 0, 0, 0, 885, 186, 1, 0, 0, 0, 886, 884, 1, 0, 0, 0, 887, 889, 7, 2, 0, 0, 888, 887, 1, 0, 0, 0, 889, 890, 1, 0, 0, 0, 890, 888, 1, 0, 0, 0, 890, 891, 1, 0, 0, 0, 891, 188, 1, 0, 0, 0, 892, 894, 7, 2, 0, 0, 893, 892, 1, 0, 0, 0, 894, 895, 1, 0, 0, 0, 895, 893, 1, 0, 0, 0, 895, 896, 1, 0, 0, 0, 896, 897, 1, 0, 0, 0, 897, 901, 5, 46, 0, 0, 898, 900, 7, 2, 0, 0, 899, 898, 1, 0, 0, 0, 900, 903, 1, 0, 0, 0, 901, 899, 1, 0, 0, 0, 901, 902, 1, 0, 0, 0, 902, 911, 1, 0, 0, 0, 903, 901, 1, 0, 0, 0, 904, 906, 5, 46, 0, 0, 905, 907, 7, 2, 0, 0, 906, 905, 1, 0, 0, 0, 907, 908, 1, 0, 0, 0, 908, 906, 1, 0, 0, 0, 908, 909, 1, 0, 0, 0, 909, 911, 1, 0, 0, 0, 910, 893, 1, 0, 0, 0, 910, 904, 1, 0, 0, 0, 911, 190, 1, 0, 0, 0, 912, 918, 5, 34, 0, 0, 913, 917, 8, 3, 0, 0, 914, 915, 5, 34, 0, 0, 915, 917, 5, 34, 0, 0, 916, 913, 1, 0, 0, 0, 916, 914, 1, 0, 0, 0, 917, 920, 1, 0, 0, 0, 918, 916, 1, 0, 0, 0, 918, 919, 1, 0, 0, 0, 919, 921, 1, 0, 0, 0, 920, 918, 1, 0, 0, 0, 921, 922, 5, 34, 0, 0, 922, 192, 1, 0, 0, 0, 923, 927, 5, 96, 0, 0, 924, 926, 8, 4, 0, 0, 925, 924, 1, 0, 0, 0, 926, 929, 1, 0, 0, 0, 927, 925, 1, 0, 0, 0, 927, 928, 1, 0, 0, 0, 928, 930, 1, 0, 0, 0, 929, 927, 1, 0, 0, 0, 930, 931, 5, 96, 0, 0, 931, 194, 1, 0, 0, 0, 932, 936, 5, 35, 0, 0, 933, 935, 8, 5, 0, 0, 934, 933, 1, 0, 0, 0, 935, 938, 1, 0, 0, 0, 936, 934, 1, 0, 0, 0, 936, 937, 1, 0, 0, 0, 937, 939, 1, 0, 0, 0, 938, 936, 1, 0, 0, 0, 939, 940, 6, 97, 0, 0, 940, 196, 1, 0, 0, 0, 941, 942, 7, 6, 0, 0, 942, 943, 1, 0, 0, 0, 943, 944, 6, 98, 0, 0, 944, 198, 1, 0, 0, 0, 945, 946, 5, 42, 0, 0, 946, 200, 1, 0, 0, 0, 947, 948, 5, 123, 0, 0, 948, 949, 4, 100, 0, 0, 949, 950, 3, 205, 102, 0, 950, 202, 1, 0, 0, 0, 951, 952, 5, 123, 0, 0, 952, 953, 3, 205, 102, 0, 953, 204, 1, 0, 0, 0, 954, 988, 3, 203, 101, 0, 955, 956, 5, 47, 0, 0, 956, 957, 5, 47, 0, 0, 957, 961, 1, 0, 0, 0, 958, 960, 8, 5, 0, 0, 959, 958, 1, 0, 0, 0, 960, 963, 1, 0, 0, 0, 961, 959, 1, 0, 0, 0, 961, 962, 1, 0, 0, 0, 962, 988, 1, 0, 0, 0, 963, 961, 1, 0, 0, 0, 964, 965, 5, 47, 0, 0, 965, 966, 5, 42, 0, 0, 966, 970, 1, 0, 0, 0, 967, 969, 9, 0, 0, 0, 968, 967, 1, 0, 0, 0, 969, 972, 1, 0, 0, 0, 970, 971, 1, 0, 0, 0, 970, 968, 1, 0, 0, 0, 971, 973, 1, 0, 0, 0, 972, 970, 1, 0, 0, 0, 973, 974, 5, 42, 0, 0, 974, 988, 5, 47, 0, 0, 975, 981, 5, 34, 0, 0, 976, 980, 8, 7, 0, 0, 977, 978, 5, 92, 0, 0, 978, 980, 9, 0, 0, 0, 979, 976, 1, 0, 0, 0, 979, 977, 1, 0, 0, 0, 980, 983, 1, 0, 0, 0, 981, 979, 1, 0, 0, 0, 981, 982, 1, 0, 0, 0, 982, 984, 1, 0, 0, 0, 983, 981, 1, 0, 0, 0, 984, 988, 5, 34, 0, 0, 985, 988, 8, 8, 0, 0, 986, 988, 5, 47, 0, 0, 987, 954, 1, 0, 0, 0, 987, 955, 1, 0, 0, 0, 987, 964, 1, 0, 0, 0, 987, 975, 1, 0, 0, 0, 987, 985, 1, 0, 0, 0, 987, 986, 1, 0, 0, 0, 988, 991, 1, 0, 0, 0, 989, 987, 1, 0, 0, 0, 989, 990, 1, 0, 0, 0, 990, 992, 1, 0, 0, 0, 991, 989, 1, 0, 0, 0, 992, 993, 5, 125, 0, 0, 993, 206, 1, 0, 0, 0, 994, 995, 5, 37, 0, 0, 995, 996, 5, 123, 0, 0, 996, 208, 1, 0, 0, 0, 997, 998, 5, 125, 0, 0, 998, 999, 5, 37, 0, 0, 999, 210, 1, 0, 0, 0, 1000, 1004, 3, 207, 103, 0, 1001, 1003, 9, 0, 0, 0, 1002, 1001, 1, 0, 0, 0, 1003, 1006, 1, 0, 0, 0, 1004, 1005, 1, 0, 0, 0, 1004, 1002, 1, 0, 0, 0, 1005, 1007, 1, 0, 0, 0, 1006, 1004, 1, 0, 0, 0, 1007, 1008, 3, 209, 104, 0, 1008, 212, 1, 0, 0, 0, 18, 0, 884, 890, 895, 901, 908, 910, 916, 918, 927, 936, 961, 970, 979, 981, 987, 989, 1004, 1, 6, 0, 0] \ No newline at end of file diff --git a/sources/Prism/.antlr/PrismLexer.tokens b/sources/Prism/.antlr/PrismLexer.tokens deleted file mode 100644 index 98ada16ae..000000000 --- a/sources/Prism/.antlr/PrismLexer.tokens +++ /dev/null @@ -1,199 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T__10=11 -T__11=12 -T__12=13 -T__13=14 -T__14=15 -T__15=16 -T__16=17 -T__17=18 -T__18=19 -T__19=20 -T__20=21 -T__21=22 -T__22=23 -T__23=24 -T__24=25 -T__25=26 -T__26=27 -T__27=28 -T__28=29 -T__29=30 -T__30=31 -T__31=32 -T__32=33 -T__33=34 -T__34=35 -T__35=36 -T__36=37 -T__37=38 -T__38=39 -T__39=40 -T__40=41 -T__41=42 -T__42=43 -T__43=44 -OR=45 -AND=46 -PIPE=47 -EQ=48 -NEQ=49 -GT=50 -LT=51 -GTEQ=52 -LTEQ=53 -PLUS=54 -MINUS=55 -DIV=56 -MOD=57 -POW=58 -NOT=59 -SCOL=60 -COLON=61 -DOT=62 -ASSIGN=63 -OPAR=64 -CPAR=65 -OBRACE=66 -CBRACE=67 -OSBRACE=68 -CSBRACE=69 -TRUE=70 -FALSE=71 -LOG=72 -LAYOUT=73 -STRUCT=74 -NAMESPACE=75 -COMPUTE_PSO=76 -GRAPHICS_PSO=77 -RAYTRACE_PSO=78 -WORKGRAPH_PSO=79 -NODE=80 -NODE_OUTPUT=81 -RAYTRACE_RAYGEN=82 -RAYTRACE_PASS=83 -PASS=84 -VIEW=85 -PIPELINE=86 -SLOT=87 -RT=88 -RTV=89 -DSV=90 -ROOTSIG=91 -ENUM=92 -ID=93 -INT_SCALAR=94 -FLOAT_SCALAR=95 -STRING=96 -RAWEXPR=97 -COMMENT=98 -SPACE=99 -POINTER=100 -FUNC_BODY=101 -INSERT_START=102 -INSERT_END=103 -INSERT_BLOCK=104 -'const'=1 -'::'=2 -','=3 -'Sampler'=4 -'define'=5 -'rtv'=6 -'blend'=7 -'launch'=8 -'entry'=9 -'num_threads'=10 -'max_dispatch_grid'=11 -'input'=12 -'compute'=13 -'vertex'=14 -'pixel'=15 -'domain'=16 -'hull'=17 -'geometry'=18 -'miss'=19 -'closest_hit'=20 -'any_hit'=21 -'raygen'=22 -'amplification'=23 -'mesh'=24 -'shader'=25 -'ds'=26 -'cull'=27 -'depth_func'=28 -'depth_write'=29 -'conservative'=30 -'depth_bias'=31 -'depth_bias_clamp'=32 -'slope_scaled_depth_bias'=33 -'enable_depth'=34 -'topology'=35 -'enable_stencil'=36 -'stencil_func'=37 -'stencil_pass_op'=38 -'stencil_read_mask'=39 -'stencil_write_mask'=40 -'recursion_depth'=41 -'payload'=42 -'per_material'=43 -'local'=44 -'||'=45 -'&&'=46 -'|'=47 -'=='=48 -'!='=49 -'>'=50 -'<'=51 -'>='=52 -'<='=53 -'+'=54 -'-'=55 -'/'=56 -'%'=57 -'^'=58 -'!'=59 -';'=60 -':'=61 -'.'=62 -'='=63 -'('=64 -')'=65 -'{'=66 -'}'=67 -'['=68 -']'=69 -'true'=70 -'false'=71 -'log'=72 -'layout'=73 -'struct'=74 -'namespace'=75 -'ComputePSO'=76 -'GraphicsPSO'=77 -'RaytracePSO'=78 -'WorkgraphPSO'=79 -'Node'=80 -'NodeOutput'=81 -'RaytraceRaygen'=82 -'RaytracePass'=83 -'PassNode'=84 -'PassView'=85 -'Pipeline'=86 -'slot'=87 -'rt'=88 -'RTV'=89 -'DSV'=90 -'root'=91 -'enum'=92 -'*'=100 -'%{'=102 -'}%'=103 diff --git a/sources/Prism/.antlr/PrismListener.cpp b/sources/Prism/.antlr/PrismListener.cpp deleted file mode 100644 index c45eaefea..000000000 --- a/sources/Prism/.antlr/PrismListener.cpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - - -#include "PrismListener.h" - - diff --git a/sources/Prism/.antlr/PrismListener.h b/sources/Prism/.antlr/PrismListener.h deleted file mode 100644 index 0920982ba..000000000 --- a/sources/Prism/.antlr/PrismListener.h +++ /dev/null @@ -1,316 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - -#pragma once - - -#include "antlr4-runtime.h" -#include "PrismParser.h" - - -/** - * This interface defines an abstract listener for a parse tree produced by PrismParser. - */ -class PrismListener : public antlr4::tree::ParseTreeListener { -public: - - virtual void enterParse(PrismParser::ParseContext *ctx) = 0; - virtual void exitParse(PrismParser::ParseContext *ctx) = 0; - - virtual void enterDefinition(PrismParser::DefinitionContext *ctx) = 0; - virtual void exitDefinition(PrismParser::DefinitionContext *ctx) = 0; - - virtual void enterNamespace_definition(PrismParser::Namespace_definitionContext *ctx) = 0; - virtual void exitNamespace_definition(PrismParser::Namespace_definitionContext *ctx) = 0; - - virtual void enterNamespace_header(PrismParser::Namespace_headerContext *ctx) = 0; - virtual void exitNamespace_header(PrismParser::Namespace_headerContext *ctx) = 0; - - virtual void enterConst_definition(PrismParser::Const_definitionContext *ctx) = 0; - virtual void exitConst_definition(PrismParser::Const_definitionContext *ctx) = 0; - - virtual void enterBind_option(PrismParser::Bind_optionContext *ctx) = 0; - virtual void exitBind_option(PrismParser::Bind_optionContext *ctx) = 0; - - virtual void enterCond_expr(PrismParser::Cond_exprContext *ctx) = 0; - virtual void exitCond_expr(PrismParser::Cond_exprContext *ctx) = 0; - - virtual void enterCond_term(PrismParser::Cond_termContext *ctx) = 0; - virtual void exitCond_term(PrismParser::Cond_termContext *ctx) = 0; - - virtual void enterCall(PrismParser::CallContext *ctx) = 0; - virtual void exitCall(PrismParser::CallContext *ctx) = 0; - - virtual void enterCall_arg(PrismParser::Call_argContext *ctx) = 0; - virtual void exitCall_arg(PrismParser::Call_argContext *ctx) = 0; - - virtual void enterQualified_ref(PrismParser::Qualified_refContext *ctx) = 0; - virtual void exitQualified_ref(PrismParser::Qualified_refContext *ctx) = 0; - - virtual void enterMember_ref(PrismParser::Member_refContext *ctx) = 0; - virtual void exitMember_ref(PrismParser::Member_refContext *ctx) = 0; - - virtual void enterCond_op(PrismParser::Cond_opContext *ctx) = 0; - virtual void exitCond_op(PrismParser::Cond_opContext *ctx) = 0; - - virtual void enterFlag_value_holder(PrismParser::Flag_value_holderContext *ctx) = 0; - virtual void exitFlag_value_holder(PrismParser::Flag_value_holderContext *ctx) = 0; - - virtual void enterRaw_value(PrismParser::Raw_valueContext *ctx) = 0; - virtual void exitRaw_value(PrismParser::Raw_valueContext *ctx) = 0; - - virtual void enterOptions_assign(PrismParser::Options_assignContext *ctx) = 0; - virtual void exitOptions_assign(PrismParser::Options_assignContext *ctx) = 0; - - virtual void enterOption(PrismParser::OptionContext *ctx) = 0; - virtual void exitOption(PrismParser::OptionContext *ctx) = 0; - - virtual void enterOption_block(PrismParser::Option_blockContext *ctx) = 0; - virtual void exitOption_block(PrismParser::Option_blockContext *ctx) = 0; - - virtual void enterArray_count_id(PrismParser::Array_count_idContext *ctx) = 0; - virtual void exitArray_count_id(PrismParser::Array_count_idContext *ctx) = 0; - - virtual void enterArray(PrismParser::ArrayContext *ctx) = 0; - virtual void exitArray(PrismParser::ArrayContext *ctx) = 0; - - virtual void enterValue_declaration(PrismParser::Value_declarationContext *ctx) = 0; - virtual void exitValue_declaration(PrismParser::Value_declarationContext *ctx) = 0; - - virtual void enterSlot_declaration(PrismParser::Slot_declarationContext *ctx) = 0; - virtual void exitSlot_declaration(PrismParser::Slot_declarationContext *ctx) = 0; - - virtual void enterSampler_declaration(PrismParser::Sampler_declarationContext *ctx) = 0; - virtual void exitSampler_declaration(PrismParser::Sampler_declarationContext *ctx) = 0; - - virtual void enterDefine_declaration(PrismParser::Define_declarationContext *ctx) = 0; - virtual void exitDefine_declaration(PrismParser::Define_declarationContext *ctx) = 0; - - virtual void enterRtv_formats_declaration(PrismParser::Rtv_formats_declarationContext *ctx) = 0; - virtual void exitRtv_formats_declaration(PrismParser::Rtv_formats_declarationContext *ctx) = 0; - - virtual void enterBlends_declaration(PrismParser::Blends_declarationContext *ctx) = 0; - virtual void exitBlends_declaration(PrismParser::Blends_declarationContext *ctx) = 0; - - virtual void enterPointer(PrismParser::PointerContext *ctx) = 0; - virtual void exitPointer(PrismParser::PointerContext *ctx) = 0; - - virtual void enterPso_param(PrismParser::Pso_paramContext *ctx) = 0; - virtual void exitPso_param(PrismParser::Pso_paramContext *ctx) = 0; - - virtual void enterClass_no_template(PrismParser::Class_no_templateContext *ctx) = 0; - virtual void exitClass_no_template(PrismParser::Class_no_templateContext *ctx) = 0; - - virtual void enterType_with_template(PrismParser::Type_with_templateContext *ctx) = 0; - virtual void exitType_with_template(PrismParser::Type_with_templateContext *ctx) = 0; - - virtual void enterInherit_id(PrismParser::Inherit_idContext *ctx) = 0; - virtual void exitInherit_id(PrismParser::Inherit_idContext *ctx) = 0; - - virtual void enterName_id(PrismParser::Name_idContext *ctx) = 0; - virtual void exitName_id(PrismParser::Name_idContext *ctx) = 0; - - virtual void enterOption_id(PrismParser::Option_idContext *ctx) = 0; - virtual void exitOption_id(PrismParser::Option_idContext *ctx) = 0; - - virtual void enterOwner_id(PrismParser::Owner_idContext *ctx) = 0; - virtual void exitOwner_id(PrismParser::Owner_idContext *ctx) = 0; - - virtual void enterTemplate_id(PrismParser::Template_idContext *ctx) = 0; - virtual void exitTemplate_id(PrismParser::Template_idContext *ctx) = 0; - - virtual void enterFunction_id(PrismParser::Function_idContext *ctx) = 0; - virtual void exitFunction_id(PrismParser::Function_idContext *ctx) = 0; - - virtual void enterValue_id(PrismParser::Value_idContext *ctx) = 0; - virtual void exitValue_id(PrismParser::Value_idContext *ctx) = 0; - - virtual void enterValue_id_ignore(PrismParser::Value_id_ignoreContext *ctx) = 0; - virtual void exitValue_id_ignore(PrismParser::Value_id_ignoreContext *ctx) = 0; - - virtual void enterType_id(PrismParser::Type_idContext *ctx) = 0; - virtual void exitType_id(PrismParser::Type_idContext *ctx) = 0; - - virtual void enterInsert_block(PrismParser::Insert_blockContext *ctx) = 0; - virtual void exitInsert_block(PrismParser::Insert_blockContext *ctx) = 0; - - virtual void enterShader_path(PrismParser::Shader_pathContext *ctx) = 0; - virtual void exitShader_path(PrismParser::Shader_pathContext *ctx) = 0; - - virtual void enterInherit(PrismParser::InheritContext *ctx) = 0; - virtual void exitInherit(PrismParser::InheritContext *ctx) = 0; - - virtual void enterLayout_stat(PrismParser::Layout_statContext *ctx) = 0; - virtual void exitLayout_stat(PrismParser::Layout_statContext *ctx) = 0; - - virtual void enterLayout_block(PrismParser::Layout_blockContext *ctx) = 0; - virtual void exitLayout_block(PrismParser::Layout_blockContext *ctx) = 0; - - virtual void enterLayout_definition(PrismParser::Layout_definitionContext *ctx) = 0; - virtual void exitLayout_definition(PrismParser::Layout_definitionContext *ctx) = 0; - - virtual void enterTable_stat(PrismParser::Table_statContext *ctx) = 0; - virtual void exitTable_stat(PrismParser::Table_statContext *ctx) = 0; - - virtual void enterFunction_definition(PrismParser::Function_definitionContext *ctx) = 0; - virtual void exitFunction_definition(PrismParser::Function_definitionContext *ctx) = 0; - - virtual void enterFunction_params(PrismParser::Function_paramsContext *ctx) = 0; - virtual void exitFunction_params(PrismParser::Function_paramsContext *ctx) = 0; - - virtual void enterFunction_semantic(PrismParser::Function_semanticContext *ctx) = 0; - virtual void exitFunction_semantic(PrismParser::Function_semanticContext *ctx) = 0; - - virtual void enterTable_block(PrismParser::Table_blockContext *ctx) = 0; - virtual void exitTable_block(PrismParser::Table_blockContext *ctx) = 0; - - virtual void enterTable_definition(PrismParser::Table_definitionContext *ctx) = 0; - virtual void exitTable_definition(PrismParser::Table_definitionContext *ctx) = 0; - - virtual void enterRt_color_declaration(PrismParser::Rt_color_declarationContext *ctx) = 0; - virtual void exitRt_color_declaration(PrismParser::Rt_color_declarationContext *ctx) = 0; - - virtual void enterRt_ds_declaration(PrismParser::Rt_ds_declarationContext *ctx) = 0; - virtual void exitRt_ds_declaration(PrismParser::Rt_ds_declarationContext *ctx) = 0; - - virtual void enterRt_stat(PrismParser::Rt_statContext *ctx) = 0; - virtual void exitRt_stat(PrismParser::Rt_statContext *ctx) = 0; - - virtual void enterRt_block(PrismParser::Rt_blockContext *ctx) = 0; - virtual void exitRt_block(PrismParser::Rt_blockContext *ctx) = 0; - - virtual void enterRt_definition(PrismParser::Rt_definitionContext *ctx) = 0; - virtual void exitRt_definition(PrismParser::Rt_definitionContext *ctx) = 0; - - virtual void enterArray_value_holder(PrismParser::Array_value_holderContext *ctx) = 0; - virtual void exitArray_value_holder(PrismParser::Array_value_holderContext *ctx) = 0; - - virtual void enterArray_value_ids(PrismParser::Array_value_idsContext *ctx) = 0; - virtual void exitArray_value_ids(PrismParser::Array_value_idsContext *ctx) = 0; - - virtual void enterRoot_sig(PrismParser::Root_sigContext *ctx) = 0; - virtual void exitRoot_sig(PrismParser::Root_sigContext *ctx) = 0; - - virtual void enterShader(PrismParser::ShaderContext *ctx) = 0; - virtual void exitShader(PrismParser::ShaderContext *ctx) = 0; - - virtual void enterCompute_pso_stat(PrismParser::Compute_pso_statContext *ctx) = 0; - virtual void exitCompute_pso_stat(PrismParser::Compute_pso_statContext *ctx) = 0; - - virtual void enterCompute_pso_block(PrismParser::Compute_pso_blockContext *ctx) = 0; - virtual void exitCompute_pso_block(PrismParser::Compute_pso_blockContext *ctx) = 0; - - virtual void enterCompute_pso_definition(PrismParser::Compute_pso_definitionContext *ctx) = 0; - virtual void exitCompute_pso_definition(PrismParser::Compute_pso_definitionContext *ctx) = 0; - - virtual void enterGraphics_pso_stat(PrismParser::Graphics_pso_statContext *ctx) = 0; - virtual void exitGraphics_pso_stat(PrismParser::Graphics_pso_statContext *ctx) = 0; - - virtual void enterGraphics_pso_block(PrismParser::Graphics_pso_blockContext *ctx) = 0; - virtual void exitGraphics_pso_block(PrismParser::Graphics_pso_blockContext *ctx) = 0; - - virtual void enterGraphics_pso_definition(PrismParser::Graphics_pso_definitionContext *ctx) = 0; - virtual void exitGraphics_pso_definition(PrismParser::Graphics_pso_definitionContext *ctx) = 0; - - virtual void enterRtx_pso_stat(PrismParser::Rtx_pso_statContext *ctx) = 0; - virtual void exitRtx_pso_stat(PrismParser::Rtx_pso_statContext *ctx) = 0; - - virtual void enterRtx_pso_block(PrismParser::Rtx_pso_blockContext *ctx) = 0; - virtual void exitRtx_pso_block(PrismParser::Rtx_pso_blockContext *ctx) = 0; - - virtual void enterRtx_pso_definition(PrismParser::Rtx_pso_definitionContext *ctx) = 0; - virtual void exitRtx_pso_definition(PrismParser::Rtx_pso_definitionContext *ctx) = 0; - - virtual void enterNode_param_id(PrismParser::Node_param_idContext *ctx) = 0; - virtual void exitNode_param_id(PrismParser::Node_param_idContext *ctx) = 0; - - virtual void enterNode_param(PrismParser::Node_paramContext *ctx) = 0; - virtual void exitNode_param(PrismParser::Node_paramContext *ctx) = 0; - - virtual void enterNode_output_decl(PrismParser::Node_output_declContext *ctx) = 0; - virtual void exitNode_output_decl(PrismParser::Node_output_declContext *ctx) = 0; - - virtual void enterNode_stat(PrismParser::Node_statContext *ctx) = 0; - virtual void exitNode_stat(PrismParser::Node_statContext *ctx) = 0; - - virtual void enterNode_block(PrismParser::Node_blockContext *ctx) = 0; - virtual void exitNode_block(PrismParser::Node_blockContext *ctx) = 0; - - virtual void enterNode_definition(PrismParser::Node_definitionContext *ctx) = 0; - virtual void exitNode_definition(PrismParser::Node_definitionContext *ctx) = 0; - - virtual void enterWorkgraph_pso_stat(PrismParser::Workgraph_pso_statContext *ctx) = 0; - virtual void exitWorkgraph_pso_stat(PrismParser::Workgraph_pso_statContext *ctx) = 0; - - virtual void enterWorkgraph_pso_block(PrismParser::Workgraph_pso_blockContext *ctx) = 0; - virtual void exitWorkgraph_pso_block(PrismParser::Workgraph_pso_blockContext *ctx) = 0; - - virtual void enterWorkgraph_pso_definition(PrismParser::Workgraph_pso_definitionContext *ctx) = 0; - virtual void exitWorkgraph_pso_definition(PrismParser::Workgraph_pso_definitionContext *ctx) = 0; - - virtual void enterRtx_pass_stat(PrismParser::Rtx_pass_statContext *ctx) = 0; - virtual void exitRtx_pass_stat(PrismParser::Rtx_pass_statContext *ctx) = 0; - - virtual void enterRtx_pass_block(PrismParser::Rtx_pass_blockContext *ctx) = 0; - virtual void exitRtx_pass_block(PrismParser::Rtx_pass_blockContext *ctx) = 0; - - virtual void enterRtx_pass_definition(PrismParser::Rtx_pass_definitionContext *ctx) = 0; - virtual void exitRtx_pass_definition(PrismParser::Rtx_pass_definitionContext *ctx) = 0; - - virtual void enterRtx_raygen_stat(PrismParser::Rtx_raygen_statContext *ctx) = 0; - virtual void exitRtx_raygen_stat(PrismParser::Rtx_raygen_statContext *ctx) = 0; - - virtual void enterRtx_raygen_block(PrismParser::Rtx_raygen_blockContext *ctx) = 0; - virtual void exitRtx_raygen_block(PrismParser::Rtx_raygen_blockContext *ctx) = 0; - - virtual void enterRtx_raygen_definition(PrismParser::Rtx_raygen_definitionContext *ctx) = 0; - virtual void exitRtx_raygen_definition(PrismParser::Rtx_raygen_definitionContext *ctx) = 0; - - virtual void enterView_declaration(PrismParser::View_declarationContext *ctx) = 0; - virtual void exitView_declaration(PrismParser::View_declarationContext *ctx) = 0; - - virtual void enterView_stat(PrismParser::View_statContext *ctx) = 0; - virtual void exitView_stat(PrismParser::View_statContext *ctx) = 0; - - virtual void enterView_block(PrismParser::View_blockContext *ctx) = 0; - virtual void exitView_block(PrismParser::View_blockContext *ctx) = 0; - - virtual void enterView_definition(PrismParser::View_definitionContext *ctx) = 0; - virtual void exitView_definition(PrismParser::View_definitionContext *ctx) = 0; - - virtual void enterPass_definition(PrismParser::Pass_definitionContext *ctx) = 0; - virtual void exitPass_definition(PrismParser::Pass_definitionContext *ctx) = 0; - - virtual void enterPipeline_stat(PrismParser::Pipeline_statContext *ctx) = 0; - virtual void exitPipeline_stat(PrismParser::Pipeline_statContext *ctx) = 0; - - virtual void enterPipeline_block(PrismParser::Pipeline_blockContext *ctx) = 0; - virtual void exitPipeline_block(PrismParser::Pipeline_blockContext *ctx) = 0; - - virtual void enterPipeline_definition(PrismParser::Pipeline_definitionContext *ctx) = 0; - virtual void exitPipeline_definition(PrismParser::Pipeline_definitionContext *ctx) = 0; - - virtual void enterEnum_value_declaration(PrismParser::Enum_value_declarationContext *ctx) = 0; - virtual void exitEnum_value_declaration(PrismParser::Enum_value_declarationContext *ctx) = 0; - - virtual void enterEnum_stat(PrismParser::Enum_statContext *ctx) = 0; - virtual void exitEnum_stat(PrismParser::Enum_statContext *ctx) = 0; - - virtual void enterEnum_block(PrismParser::Enum_blockContext *ctx) = 0; - virtual void exitEnum_block(PrismParser::Enum_blockContext *ctx) = 0; - - virtual void enterEnum_definition(PrismParser::Enum_definitionContext *ctx) = 0; - virtual void exitEnum_definition(PrismParser::Enum_definitionContext *ctx) = 0; - - virtual void enterShader_type(PrismParser::Shader_typeContext *ctx) = 0; - virtual void exitShader_type(PrismParser::Shader_typeContext *ctx) = 0; - - virtual void enterPso_param_id(PrismParser::Pso_param_idContext *ctx) = 0; - virtual void exitPso_param_id(PrismParser::Pso_param_idContext *ctx) = 0; - - virtual void enterBool_type(PrismParser::Bool_typeContext *ctx) = 0; - virtual void exitBool_type(PrismParser::Bool_typeContext *ctx) = 0; - - -}; - diff --git a/sources/Prism/.antlr/PrismParser.cpp b/sources/Prism/.antlr/PrismParser.cpp deleted file mode 100644 index d4f888973..000000000 --- a/sources/Prism/.antlr/PrismParser.cpp +++ /dev/null @@ -1,9443 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - - -#include "PrismListener.h" -#include "PrismVisitor.h" - -#include "PrismParser.h" - - -using namespace antlrcpp; - -using namespace antlr4; - -namespace { - -struct PrismParserStaticData final { - PrismParserStaticData(std::vector ruleNames, - std::vector literalNames, - std::vector symbolicNames) - : ruleNames(std::move(ruleNames)), literalNames(std::move(literalNames)), - symbolicNames(std::move(symbolicNames)), - vocabulary(this->literalNames, this->symbolicNames) {} - - PrismParserStaticData(const PrismParserStaticData&) = delete; - PrismParserStaticData(PrismParserStaticData&&) = delete; - PrismParserStaticData& operator=(const PrismParserStaticData&) = delete; - PrismParserStaticData& operator=(PrismParserStaticData&&) = delete; - - std::vector decisionToDFA; - antlr4::atn::PredictionContextCache sharedContextCache; - const std::vector ruleNames; - const std::vector literalNames; - const std::vector symbolicNames; - const antlr4::dfa::Vocabulary vocabulary; - antlr4::atn::SerializedATNView serializedATN; - std::unique_ptr atn; -}; - -::antlr4::internal::OnceFlag prismParserOnceFlag; -PrismParserStaticData *prismParserStaticData = nullptr; - -void prismParserInitialize() { - assert(prismParserStaticData == nullptr); - auto staticData = std::make_unique( - std::vector{ - "parse", "definition", "namespace_definition", "namespace_header", - "const_definition", "bind_option", "cond_expr", "cond_term", "call", - "call_arg", "qualified_ref", "member_ref", "cond_op", "flag_value_holder", - "raw_value", "options_assign", "option", "option_block", "array_count_id", - "array", "value_declaration", "slot_declaration", "sampler_declaration", - "define_declaration", "rtv_formats_declaration", "blends_declaration", - "pointer", "pso_param", "class_no_template", "type_with_template", - "inherit_id", "name_id", "option_id", "owner_id", "template_id", "function_id", - "value_id", "value_id_ignore", "type_id", "insert_block", "shader_path", - "inherit", "layout_stat", "layout_block", "layout_definition", "table_stat", - "function_definition", "function_params", "function_semantic", "table_block", - "table_definition", "rt_color_declaration", "rt_ds_declaration", "rt_stat", - "rt_block", "rt_definition", "array_value_holder", "array_value_ids", - "root_sig", "shader", "compute_pso_stat", "compute_pso_block", "compute_pso_definition", - "graphics_pso_stat", "graphics_pso_block", "graphics_pso_definition", - "rtx_pso_stat", "rtx_pso_block", "rtx_pso_definition", "node_param_id", - "node_param", "node_output_decl", "node_stat", "node_block", "node_definition", - "workgraph_pso_stat", "workgraph_pso_block", "workgraph_pso_definition", - "rtx_pass_stat", "rtx_pass_block", "rtx_pass_definition", "rtx_raygen_stat", - "rtx_raygen_block", "rtx_raygen_definition", "view_declaration", "view_stat", - "view_block", "view_definition", "pass_definition", "pipeline_stat", - "pipeline_block", "pipeline_definition", "enum_value_declaration", - "enum_stat", "enum_block", "enum_definition", "shader_type", "pso_param_id", - "bool_type" - }, - std::vector{ - "", "'const'", "'::'", "','", "'Sampler'", "'define'", "'rtv'", "'blend'", - "'launch'", "'entry'", "'num_threads'", "'max_dispatch_grid'", "'input'", - "'compute'", "'vertex'", "'pixel'", "'domain'", "'hull'", "'geometry'", - "'miss'", "'closest_hit'", "'any_hit'", "'raygen'", "'amplification'", - "'mesh'", "'shader'", "'ds'", "'cull'", "'depth_func'", "'depth_write'", - "'conservative'", "'depth_bias'", "'depth_bias_clamp'", "'slope_scaled_depth_bias'", - "'enable_depth'", "'topology'", "'enable_stencil'", "'stencil_func'", - "'stencil_pass_op'", "'stencil_read_mask'", "'stencil_write_mask'", - "'recursion_depth'", "'payload'", "'per_material'", "'local'", "'||'", - "'&&'", "'|'", "'=='", "'!='", "'>'", "'<'", "'>='", "'<='", "'+'", - "'-'", "'/'", "'%'", "'^'", "'!'", "';'", "':'", "'.'", "'='", "'('", - "')'", "'{'", "'}'", "'['", "']'", "'true'", "'false'", "'log'", "'layout'", - "'struct'", "'namespace'", "'ComputePSO'", "'GraphicsPSO'", "'RaytracePSO'", - "'WorkgraphPSO'", "'Node'", "'NodeOutput'", "'RaytraceRaygen'", "'RaytracePass'", - "'PassNode'", "'PassView'", "'Pipeline'", "'slot'", "'rt'", "'RTV'", - "'DSV'", "'root'", "'enum'", "", "", "", "", "", "", "", "'*'", "", - "'%{'", "'}%'" - }, - std::vector{ - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", "", "OR", "AND", "PIPE", "EQ", - "NEQ", "GT", "LT", "GTEQ", "LTEQ", "PLUS", "MINUS", "DIV", "MOD", - "POW", "NOT", "SCOL", "COLON", "DOT", "ASSIGN", "OPAR", "CPAR", "OBRACE", - "CBRACE", "OSBRACE", "CSBRACE", "TRUE", "FALSE", "LOG", "LAYOUT", - "STRUCT", "NAMESPACE", "COMPUTE_PSO", "GRAPHICS_PSO", "RAYTRACE_PSO", - "WORKGRAPH_PSO", "NODE", "NODE_OUTPUT", "RAYTRACE_RAYGEN", "RAYTRACE_PASS", - "PASS", "VIEW", "PIPELINE", "SLOT", "RT", "RTV", "DSV", "ROOTSIG", - "ENUM", "ID", "INT_SCALAR", "FLOAT_SCALAR", "STRING", "RAWEXPR", "COMMENT", - "SPACE", "POINTER", "FUNC_BODY", "INSERT_START", "INSERT_END", "INSERT_BLOCK" - } - ); - static const int32_t serializedATNSegment[] = { - 4,1,104,904,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2, - 7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7, - 14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7, - 21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7, - 28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7, - 35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7, - 42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7, - 49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7, - 56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7, - 63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7, - 70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7, - 77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7, - 84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7, - 91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7, - 98,1,0,5,0,200,8,0,10,0,12,0,203,9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,223,8,1,1,2,1,2,1,2,5,2,228, - 8,2,10,2,12,2,231,9,2,1,2,1,2,1,3,5,3,236,8,3,10,3,12,3,239,9,3,1,3,1, - 3,1,3,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,3,5,252,8,5,1,5,1,5,1,5,4,5,257, - 8,5,11,5,12,5,258,1,5,1,5,3,5,263,8,5,1,6,4,6,266,8,6,11,6,12,6,267,1, - 7,1,7,1,7,1,7,1,7,1,7,3,7,276,8,7,1,8,1,8,1,8,1,8,1,8,5,8,283,8,8,10, - 8,12,8,286,9,8,1,8,1,8,1,9,4,9,291,8,9,11,9,12,9,292,1,10,1,10,1,10,1, - 10,1,11,1,11,1,11,1,11,1,12,1,12,1,13,1,13,1,14,1,14,1,15,1,15,1,15,1, - 16,1,16,3,16,314,8,16,1,17,1,17,1,17,1,17,5,17,320,8,17,10,17,12,17,323, - 9,17,1,17,1,17,1,18,1,18,1,19,1,19,3,19,331,8,19,1,19,1,19,1,20,5,20, - 336,8,20,10,20,12,20,339,9,20,1,20,1,20,1,20,3,20,344,8,20,1,20,1,20, - 3,20,348,8,20,1,20,1,20,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22, - 1,22,1,23,5,23,363,8,23,10,23,12,23,366,9,23,1,23,1,23,1,23,1,23,3,23, - 372,8,23,1,23,1,23,1,24,5,24,377,8,24,10,24,12,24,380,9,24,1,24,1,24, - 1,24,1,24,1,24,1,25,5,25,388,8,25,10,25,12,25,391,9,25,1,25,1,25,1,25, - 1,25,1,25,1,26,1,26,1,27,5,27,401,8,27,10,27,12,27,404,9,27,1,27,1,27, - 1,27,1,27,1,27,1,28,1,28,1,29,1,29,1,29,5,29,416,8,29,10,29,12,29,419, - 9,29,1,29,3,29,422,8,29,1,29,3,29,425,8,29,1,30,1,30,1,31,1,31,1,32,1, - 32,1,33,1,33,1,34,1,34,1,35,1,35,1,35,3,35,440,8,35,1,35,1,35,5,35,444, - 8,35,10,35,12,35,447,9,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36, - 3,36,458,8,36,1,37,1,37,1,37,1,37,3,37,464,8,37,1,38,1,38,1,39,1,39,1, - 40,1,40,1,41,1,41,1,41,1,41,5,41,476,8,41,10,41,12,41,479,9,41,1,42,1, - 42,1,42,3,42,484,8,42,1,43,5,43,487,8,43,10,43,12,43,490,9,43,1,44,1, - 44,1,44,3,44,495,8,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,3,45,505, - 8,45,1,46,5,46,508,8,46,10,46,12,46,511,9,46,1,46,1,46,1,46,1,46,1,46, - 1,46,3,46,519,8,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,5,47,528,8,47,10, - 47,12,47,531,9,47,1,48,1,48,1,48,1,49,5,49,537,8,49,10,49,12,49,540,9, - 49,1,50,5,50,543,8,50,10,50,12,50,546,9,50,1,50,1,50,1,50,3,50,551,8, - 50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,53,1, - 53,1,53,3,53,568,8,53,1,54,5,54,571,8,54,10,54,12,54,574,9,54,1,55,1, - 55,1,55,1,55,1,55,1,55,1,56,1,56,1,57,1,57,1,57,1,57,5,57,588,8,57,10, - 57,12,57,591,9,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,59,5,59,601,8, - 59,10,59,12,59,604,9,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60, - 3,60,615,8,60,1,61,5,61,618,8,61,10,61,12,61,621,9,61,1,62,5,62,624,8, - 62,10,62,12,62,627,9,62,1,62,1,62,1,62,3,62,632,8,62,1,62,1,62,1,62,1, - 62,1,63,1,63,1,63,1,63,1,63,1,63,1,63,3,63,645,8,63,1,64,5,64,648,8,64, - 10,64,12,64,651,9,64,1,65,5,65,654,8,65,10,65,12,65,657,9,65,1,65,1,65, - 1,65,3,65,662,8,65,1,65,1,65,1,65,1,65,1,66,1,66,3,66,670,8,66,1,67,5, - 67,673,8,67,10,67,12,67,676,9,67,1,68,1,68,1,68,3,68,681,8,68,1,68,1, - 68,1,68,1,68,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,71,5,71,695,8,71,10, - 71,12,71,698,9,71,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,3,72,708,8, - 72,1,73,5,73,711,8,73,10,73,12,73,714,9,73,1,74,1,74,1,74,1,74,1,74,1, - 74,1,75,1,75,1,75,1,75,1,75,3,75,727,8,75,1,76,5,76,730,8,76,10,76,12, - 76,733,9,76,1,77,5,77,736,8,77,10,77,12,77,739,9,77,1,77,1,77,1,77,3, - 77,744,8,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,3,78,753,8,78,1,79,5,79, - 756,8,79,10,79,12,79,759,9,79,1,80,5,80,762,8,80,10,80,12,80,765,9,80, - 1,80,1,80,1,80,3,80,770,8,80,1,80,1,80,1,80,1,80,1,81,1,81,3,81,778,8, - 81,1,82,5,82,781,8,82,10,82,12,82,784,9,82,1,83,5,83,787,8,83,10,83,12, - 83,790,9,83,1,83,1,83,1,83,3,83,795,8,83,1,83,1,83,1,83,1,83,1,84,5,84, - 802,8,84,10,84,12,84,805,9,84,1,84,1,84,1,84,1,84,1,85,1,85,3,85,813, - 8,85,1,86,5,86,816,8,86,10,86,12,86,819,9,86,1,87,5,87,822,8,87,10,87, - 12,87,825,9,87,1,87,1,87,1,87,3,87,830,8,87,1,87,1,87,1,87,1,87,1,88, - 5,88,837,8,88,10,88,12,88,840,9,88,1,88,1,88,1,88,3,88,845,8,88,1,88, - 1,88,1,88,1,88,1,89,5,89,852,8,89,10,89,12,89,855,9,89,1,89,1,89,1,89, - 1,89,3,89,861,8,89,1,90,5,90,864,8,90,10,90,12,90,867,9,90,1,91,1,91, - 1,91,1,91,1,91,1,91,1,92,1,92,1,92,3,92,878,8,92,1,92,1,92,1,93,1,93, - 3,93,884,8,93,1,94,5,94,887,8,94,10,94,12,94,890,9,94,1,95,1,95,1,95, - 1,95,1,95,1,95,1,96,1,96,1,97,1,97,1,98,1,98,1,98,19,237,337,364,378, - 389,402,477,509,544,602,625,655,696,737,763,788,803,823,838,0,99,0,2, - 4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50, - 52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96, - 98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132, - 134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168, - 170,172,174,176,178,180,182,184,186,188,190,192,194,196,0,7,5,0,45,46, - 48,57,59,59,64,65,100,100,2,0,93,93,96,96,1,0,64,65,1,0,8,12,1,0,13,25, - 1,0,26,44,1,0,70,71,930,0,201,1,0,0,0,2,222,1,0,0,0,4,224,1,0,0,0,6,237, - 1,0,0,0,8,243,1,0,0,0,10,262,1,0,0,0,12,265,1,0,0,0,14,275,1,0,0,0,16, - 277,1,0,0,0,18,290,1,0,0,0,20,294,1,0,0,0,22,298,1,0,0,0,24,302,1,0,0, - 0,26,304,1,0,0,0,28,306,1,0,0,0,30,308,1,0,0,0,32,311,1,0,0,0,34,315, - 1,0,0,0,36,326,1,0,0,0,38,328,1,0,0,0,40,337,1,0,0,0,42,351,1,0,0,0,44, - 355,1,0,0,0,46,364,1,0,0,0,48,378,1,0,0,0,50,389,1,0,0,0,52,397,1,0,0, - 0,54,402,1,0,0,0,56,410,1,0,0,0,58,412,1,0,0,0,60,426,1,0,0,0,62,428, - 1,0,0,0,64,430,1,0,0,0,66,432,1,0,0,0,68,434,1,0,0,0,70,436,1,0,0,0,72, - 457,1,0,0,0,74,463,1,0,0,0,76,465,1,0,0,0,78,467,1,0,0,0,80,469,1,0,0, - 0,82,471,1,0,0,0,84,483,1,0,0,0,86,488,1,0,0,0,88,491,1,0,0,0,90,504, - 1,0,0,0,92,509,1,0,0,0,94,529,1,0,0,0,96,532,1,0,0,0,98,538,1,0,0,0,100, - 544,1,0,0,0,102,556,1,0,0,0,104,560,1,0,0,0,106,567,1,0,0,0,108,572,1, - 0,0,0,110,575,1,0,0,0,112,581,1,0,0,0,114,583,1,0,0,0,116,594,1,0,0,0, - 118,602,1,0,0,0,120,614,1,0,0,0,122,619,1,0,0,0,124,625,1,0,0,0,126,644, - 1,0,0,0,128,649,1,0,0,0,130,655,1,0,0,0,132,669,1,0,0,0,134,674,1,0,0, - 0,136,677,1,0,0,0,138,686,1,0,0,0,140,688,1,0,0,0,142,696,1,0,0,0,144, - 707,1,0,0,0,146,712,1,0,0,0,148,715,1,0,0,0,150,726,1,0,0,0,152,731,1, - 0,0,0,154,737,1,0,0,0,156,752,1,0,0,0,158,757,1,0,0,0,160,763,1,0,0,0, - 162,777,1,0,0,0,164,782,1,0,0,0,166,788,1,0,0,0,168,803,1,0,0,0,170,812, - 1,0,0,0,172,817,1,0,0,0,174,823,1,0,0,0,176,838,1,0,0,0,178,860,1,0,0, - 0,180,865,1,0,0,0,182,868,1,0,0,0,184,874,1,0,0,0,186,883,1,0,0,0,188, - 888,1,0,0,0,190,891,1,0,0,0,192,897,1,0,0,0,194,899,1,0,0,0,196,901,1, - 0,0,0,198,200,3,2,1,0,199,198,1,0,0,0,200,203,1,0,0,0,201,199,1,0,0,0, - 201,202,1,0,0,0,202,204,1,0,0,0,203,201,1,0,0,0,204,205,5,0,0,1,205,1, - 1,0,0,0,206,223,3,88,44,0,207,223,3,100,50,0,208,223,3,110,55,0,209,223, - 3,154,77,0,210,223,3,124,62,0,211,223,3,130,65,0,212,223,3,136,68,0,213, - 223,3,160,80,0,214,223,3,166,83,0,215,223,3,176,88,0,216,223,3,174,87, - 0,217,223,3,182,91,0,218,223,3,190,95,0,219,223,3,8,4,0,220,223,3,4,2, - 0,221,223,5,98,0,0,222,206,1,0,0,0,222,207,1,0,0,0,222,208,1,0,0,0,222, - 209,1,0,0,0,222,210,1,0,0,0,222,211,1,0,0,0,222,212,1,0,0,0,222,213,1, - 0,0,0,222,214,1,0,0,0,222,215,1,0,0,0,222,216,1,0,0,0,222,217,1,0,0,0, - 222,218,1,0,0,0,222,219,1,0,0,0,222,220,1,0,0,0,222,221,1,0,0,0,223,3, - 1,0,0,0,224,225,3,6,3,0,225,229,5,66,0,0,226,228,3,2,1,0,227,226,1,0, - 0,0,228,231,1,0,0,0,229,227,1,0,0,0,229,230,1,0,0,0,230,232,1,0,0,0,231, - 229,1,0,0,0,232,233,5,67,0,0,233,5,1,0,0,0,234,236,3,34,17,0,235,234, - 1,0,0,0,236,239,1,0,0,0,237,238,1,0,0,0,237,235,1,0,0,0,238,240,1,0,0, - 0,239,237,1,0,0,0,240,241,5,75,0,0,241,242,3,62,31,0,242,7,1,0,0,0,243, - 244,5,1,0,0,244,245,3,62,31,0,245,246,3,30,15,0,246,247,5,60,0,0,247, - 9,1,0,0,0,248,249,3,66,33,0,249,250,5,2,0,0,250,252,1,0,0,0,251,248,1, - 0,0,0,251,252,1,0,0,0,252,253,1,0,0,0,253,256,3,26,13,0,254,255,5,47, - 0,0,255,257,3,26,13,0,256,254,1,0,0,0,257,258,1,0,0,0,258,256,1,0,0,0, - 258,259,1,0,0,0,259,263,1,0,0,0,260,263,3,28,14,0,261,263,3,12,6,0,262, - 251,1,0,0,0,262,260,1,0,0,0,262,261,1,0,0,0,263,11,1,0,0,0,264,266,3, - 14,7,0,265,264,1,0,0,0,266,267,1,0,0,0,267,265,1,0,0,0,267,268,1,0,0, - 0,268,13,1,0,0,0,269,276,3,20,10,0,270,276,3,70,35,0,271,276,3,16,8,0, - 272,276,3,22,11,0,273,276,3,72,36,0,274,276,3,24,12,0,275,269,1,0,0,0, - 275,270,1,0,0,0,275,271,1,0,0,0,275,272,1,0,0,0,275,273,1,0,0,0,275,274, - 1,0,0,0,276,15,1,0,0,0,277,278,5,93,0,0,278,279,5,64,0,0,279,284,3,18, - 9,0,280,281,5,3,0,0,281,283,3,18,9,0,282,280,1,0,0,0,283,286,1,0,0,0, - 284,282,1,0,0,0,284,285,1,0,0,0,285,287,1,0,0,0,286,284,1,0,0,0,287,288, - 5,65,0,0,288,17,1,0,0,0,289,291,3,14,7,0,290,289,1,0,0,0,291,292,1,0, - 0,0,292,290,1,0,0,0,292,293,1,0,0,0,293,19,1,0,0,0,294,295,3,66,33,0, - 295,296,5,2,0,0,296,297,3,72,36,0,297,21,1,0,0,0,298,299,3,62,31,0,299, - 300,5,62,0,0,300,301,3,62,31,0,301,23,1,0,0,0,302,303,7,0,0,0,303,25, - 1,0,0,0,304,305,3,72,36,0,305,27,1,0,0,0,306,307,5,97,0,0,307,29,1,0, - 0,0,308,309,5,63,0,0,309,310,3,10,5,0,310,31,1,0,0,0,311,313,3,62,31, - 0,312,314,3,30,15,0,313,312,1,0,0,0,313,314,1,0,0,0,314,33,1,0,0,0,315, - 316,5,68,0,0,316,321,3,32,16,0,317,318,5,3,0,0,318,320,3,32,16,0,319, - 317,1,0,0,0,320,323,1,0,0,0,321,319,1,0,0,0,321,322,1,0,0,0,322,324,1, - 0,0,0,323,321,1,0,0,0,324,325,5,69,0,0,325,35,1,0,0,0,326,327,5,94,0, - 0,327,37,1,0,0,0,328,330,5,68,0,0,329,331,3,36,18,0,330,329,1,0,0,0,330, - 331,1,0,0,0,331,332,1,0,0,0,332,333,5,69,0,0,333,39,1,0,0,0,334,336,3, - 34,17,0,335,334,1,0,0,0,336,339,1,0,0,0,337,338,1,0,0,0,337,335,1,0,0, - 0,338,340,1,0,0,0,339,337,1,0,0,0,340,341,3,76,38,0,341,343,3,62,31,0, - 342,344,3,38,19,0,343,342,1,0,0,0,343,344,1,0,0,0,344,347,1,0,0,0,345, - 346,5,63,0,0,346,348,3,72,36,0,347,345,1,0,0,0,347,348,1,0,0,0,348,349, - 1,0,0,0,349,350,5,60,0,0,350,41,1,0,0,0,351,352,5,87,0,0,352,353,3,62, - 31,0,353,354,5,60,0,0,354,43,1,0,0,0,355,356,5,4,0,0,356,357,3,62,31, - 0,357,358,5,63,0,0,358,359,3,72,36,0,359,360,5,60,0,0,360,45,1,0,0,0, - 361,363,3,34,17,0,362,361,1,0,0,0,363,366,1,0,0,0,364,365,1,0,0,0,364, - 362,1,0,0,0,365,367,1,0,0,0,366,364,1,0,0,0,367,368,5,5,0,0,368,371,3, - 62,31,0,369,370,5,63,0,0,370,372,3,114,57,0,371,369,1,0,0,0,371,372,1, - 0,0,0,372,373,1,0,0,0,373,374,5,60,0,0,374,47,1,0,0,0,375,377,3,34,17, - 0,376,375,1,0,0,0,377,380,1,0,0,0,378,379,1,0,0,0,378,376,1,0,0,0,379, - 381,1,0,0,0,380,378,1,0,0,0,381,382,5,6,0,0,382,383,5,63,0,0,383,384, - 3,114,57,0,384,385,5,60,0,0,385,49,1,0,0,0,386,388,3,34,17,0,387,386, - 1,0,0,0,388,391,1,0,0,0,389,390,1,0,0,0,389,387,1,0,0,0,390,392,1,0,0, - 0,391,389,1,0,0,0,392,393,5,7,0,0,393,394,5,63,0,0,394,395,3,114,57,0, - 395,396,5,60,0,0,396,51,1,0,0,0,397,398,5,100,0,0,398,53,1,0,0,0,399, - 401,3,34,17,0,400,399,1,0,0,0,401,404,1,0,0,0,402,403,1,0,0,0,402,400, - 1,0,0,0,403,405,1,0,0,0,404,402,1,0,0,0,405,406,3,194,97,0,406,407,5, - 63,0,0,407,408,3,72,36,0,408,409,5,60,0,0,409,55,1,0,0,0,410,411,5,93, - 0,0,411,57,1,0,0,0,412,421,3,56,28,0,413,417,5,51,0,0,414,416,3,68,34, - 0,415,414,1,0,0,0,416,419,1,0,0,0,417,415,1,0,0,0,417,418,1,0,0,0,418, - 420,1,0,0,0,419,417,1,0,0,0,420,422,5,50,0,0,421,413,1,0,0,0,421,422, - 1,0,0,0,422,424,1,0,0,0,423,425,3,52,26,0,424,423,1,0,0,0,424,425,1,0, - 0,0,425,59,1,0,0,0,426,427,5,93,0,0,427,61,1,0,0,0,428,429,5,93,0,0,429, - 63,1,0,0,0,430,431,5,93,0,0,431,65,1,0,0,0,432,433,5,93,0,0,433,67,1, - 0,0,0,434,435,5,93,0,0,435,69,1,0,0,0,436,437,5,93,0,0,437,439,5,64,0, - 0,438,440,3,74,37,0,439,438,1,0,0,0,439,440,1,0,0,0,440,445,1,0,0,0,441, - 442,5,3,0,0,442,444,3,74,37,0,443,441,1,0,0,0,444,447,1,0,0,0,445,443, - 1,0,0,0,445,446,1,0,0,0,446,448,1,0,0,0,447,445,1,0,0,0,448,449,5,65, - 0,0,449,71,1,0,0,0,450,458,3,192,96,0,451,458,5,93,0,0,452,458,5,94,0, - 0,453,458,5,95,0,0,454,458,3,196,98,0,455,458,3,70,35,0,456,458,3,114, - 57,0,457,450,1,0,0,0,457,451,1,0,0,0,457,452,1,0,0,0,457,453,1,0,0,0, - 457,454,1,0,0,0,457,455,1,0,0,0,457,456,1,0,0,0,458,73,1,0,0,0,459,464, - 5,93,0,0,460,464,5,94,0,0,461,464,5,95,0,0,462,464,3,196,98,0,463,459, - 1,0,0,0,463,460,1,0,0,0,463,461,1,0,0,0,463,462,1,0,0,0,464,75,1,0,0, - 0,465,466,3,58,29,0,466,77,1,0,0,0,467,468,5,104,0,0,468,79,1,0,0,0,469, - 470,7,1,0,0,470,81,1,0,0,0,471,472,5,61,0,0,472,477,3,60,30,0,473,474, - 5,3,0,0,474,476,3,60,30,0,475,473,1,0,0,0,476,479,1,0,0,0,477,478,1,0, - 0,0,477,475,1,0,0,0,478,83,1,0,0,0,479,477,1,0,0,0,480,484,3,42,21,0, - 481,484,3,44,22,0,482,484,5,98,0,0,483,480,1,0,0,0,483,481,1,0,0,0,483, - 482,1,0,0,0,484,85,1,0,0,0,485,487,3,84,42,0,486,485,1,0,0,0,487,490, - 1,0,0,0,488,486,1,0,0,0,488,489,1,0,0,0,489,87,1,0,0,0,490,488,1,0,0, - 0,491,492,5,73,0,0,492,494,3,62,31,0,493,495,3,82,41,0,494,493,1,0,0, - 0,494,495,1,0,0,0,495,496,1,0,0,0,496,497,5,66,0,0,497,498,3,86,43,0, - 498,499,5,67,0,0,499,89,1,0,0,0,500,505,3,40,20,0,501,505,3,92,46,0,502, - 505,3,78,39,0,503,505,5,98,0,0,504,500,1,0,0,0,504,501,1,0,0,0,504,502, - 1,0,0,0,504,503,1,0,0,0,505,91,1,0,0,0,506,508,3,34,17,0,507,506,1,0, - 0,0,508,511,1,0,0,0,509,510,1,0,0,0,509,507,1,0,0,0,510,512,1,0,0,0,511, - 509,1,0,0,0,512,513,3,76,38,0,513,514,3,62,31,0,514,515,5,64,0,0,515, - 516,3,94,47,0,516,518,5,65,0,0,517,519,3,96,48,0,518,517,1,0,0,0,518, - 519,1,0,0,0,519,520,1,0,0,0,520,521,5,101,0,0,521,93,1,0,0,0,522,523, - 5,64,0,0,523,524,3,94,47,0,524,525,5,65,0,0,525,528,1,0,0,0,526,528,8, - 2,0,0,527,522,1,0,0,0,527,526,1,0,0,0,528,531,1,0,0,0,529,527,1,0,0,0, - 529,530,1,0,0,0,530,95,1,0,0,0,531,529,1,0,0,0,532,533,5,61,0,0,533,534, - 5,93,0,0,534,97,1,0,0,0,535,537,3,90,45,0,536,535,1,0,0,0,537,540,1,0, - 0,0,538,536,1,0,0,0,538,539,1,0,0,0,539,99,1,0,0,0,540,538,1,0,0,0,541, - 543,3,34,17,0,542,541,1,0,0,0,543,546,1,0,0,0,544,545,1,0,0,0,544,542, - 1,0,0,0,545,547,1,0,0,0,546,544,1,0,0,0,547,548,5,74,0,0,548,550,3,62, - 31,0,549,551,3,82,41,0,550,549,1,0,0,0,550,551,1,0,0,0,551,552,1,0,0, - 0,552,553,5,66,0,0,553,554,3,98,49,0,554,555,5,67,0,0,555,101,1,0,0,0, - 556,557,3,76,38,0,557,558,3,62,31,0,558,559,5,60,0,0,559,103,1,0,0,0, - 560,561,5,90,0,0,561,562,3,62,31,0,562,563,5,60,0,0,563,105,1,0,0,0,564, - 568,3,102,51,0,565,568,3,104,52,0,566,568,5,98,0,0,567,564,1,0,0,0,567, - 565,1,0,0,0,567,566,1,0,0,0,568,107,1,0,0,0,569,571,3,106,53,0,570,569, - 1,0,0,0,571,574,1,0,0,0,572,570,1,0,0,0,572,573,1,0,0,0,573,109,1,0,0, - 0,574,572,1,0,0,0,575,576,5,88,0,0,576,577,3,62,31,0,577,578,5,66,0,0, - 578,579,3,108,54,0,579,580,5,67,0,0,580,111,1,0,0,0,581,582,3,72,36,0, - 582,113,1,0,0,0,583,584,5,66,0,0,584,589,3,112,56,0,585,586,5,3,0,0,586, - 588,3,112,56,0,587,585,1,0,0,0,588,591,1,0,0,0,589,587,1,0,0,0,589,590, - 1,0,0,0,590,592,1,0,0,0,591,589,1,0,0,0,592,593,5,67,0,0,593,115,1,0, - 0,0,594,595,5,91,0,0,595,596,5,63,0,0,596,597,3,62,31,0,597,598,5,60, - 0,0,598,117,1,0,0,0,599,601,3,34,17,0,600,599,1,0,0,0,601,604,1,0,0,0, - 602,603,1,0,0,0,602,600,1,0,0,0,603,605,1,0,0,0,604,602,1,0,0,0,605,606, - 3,192,96,0,606,607,5,63,0,0,607,608,3,80,40,0,608,609,5,60,0,0,609,119, - 1,0,0,0,610,615,3,116,58,0,611,615,3,118,59,0,612,615,3,46,23,0,613,615, - 5,98,0,0,614,610,1,0,0,0,614,611,1,0,0,0,614,612,1,0,0,0,614,613,1,0, - 0,0,615,121,1,0,0,0,616,618,3,120,60,0,617,616,1,0,0,0,618,621,1,0,0, - 0,619,617,1,0,0,0,619,620,1,0,0,0,620,123,1,0,0,0,621,619,1,0,0,0,622, - 624,3,34,17,0,623,622,1,0,0,0,624,627,1,0,0,0,625,626,1,0,0,0,625,623, - 1,0,0,0,626,628,1,0,0,0,627,625,1,0,0,0,628,629,5,76,0,0,629,631,3,62, - 31,0,630,632,3,82,41,0,631,630,1,0,0,0,631,632,1,0,0,0,632,633,1,0,0, - 0,633,634,5,66,0,0,634,635,3,122,61,0,635,636,5,67,0,0,636,125,1,0,0, - 0,637,645,3,116,58,0,638,645,3,118,59,0,639,645,3,46,23,0,640,645,3,48, - 24,0,641,645,3,50,25,0,642,645,3,54,27,0,643,645,5,98,0,0,644,637,1,0, - 0,0,644,638,1,0,0,0,644,639,1,0,0,0,644,640,1,0,0,0,644,641,1,0,0,0,644, - 642,1,0,0,0,644,643,1,0,0,0,645,127,1,0,0,0,646,648,3,126,63,0,647,646, - 1,0,0,0,648,651,1,0,0,0,649,647,1,0,0,0,649,650,1,0,0,0,650,129,1,0,0, - 0,651,649,1,0,0,0,652,654,3,34,17,0,653,652,1,0,0,0,654,657,1,0,0,0,655, - 656,1,0,0,0,655,653,1,0,0,0,656,658,1,0,0,0,657,655,1,0,0,0,658,659,5, - 77,0,0,659,661,3,62,31,0,660,662,3,82,41,0,661,660,1,0,0,0,661,662,1, - 0,0,0,662,663,1,0,0,0,663,664,5,66,0,0,664,665,3,128,64,0,665,666,5,67, - 0,0,666,131,1,0,0,0,667,670,3,116,58,0,668,670,5,98,0,0,669,667,1,0,0, - 0,669,668,1,0,0,0,670,133,1,0,0,0,671,673,3,132,66,0,672,671,1,0,0,0, - 673,676,1,0,0,0,674,672,1,0,0,0,674,675,1,0,0,0,675,135,1,0,0,0,676,674, - 1,0,0,0,677,678,5,78,0,0,678,680,3,62,31,0,679,681,3,82,41,0,680,679, - 1,0,0,0,680,681,1,0,0,0,681,682,1,0,0,0,682,683,5,66,0,0,683,684,3,134, - 67,0,684,685,5,67,0,0,685,137,1,0,0,0,686,687,7,3,0,0,687,139,1,0,0,0, - 688,689,3,138,69,0,689,690,5,63,0,0,690,691,3,72,36,0,691,692,5,60,0, - 0,692,141,1,0,0,0,693,695,3,34,17,0,694,693,1,0,0,0,695,698,1,0,0,0,696, - 697,1,0,0,0,696,694,1,0,0,0,697,699,1,0,0,0,698,696,1,0,0,0,699,700,5, - 81,0,0,700,701,3,76,38,0,701,702,3,62,31,0,702,703,5,60,0,0,703,143,1, - 0,0,0,704,708,3,140,70,0,705,708,3,142,71,0,706,708,5,98,0,0,707,704, - 1,0,0,0,707,705,1,0,0,0,707,706,1,0,0,0,708,145,1,0,0,0,709,711,3,144, - 72,0,710,709,1,0,0,0,711,714,1,0,0,0,712,710,1,0,0,0,712,713,1,0,0,0, - 713,147,1,0,0,0,714,712,1,0,0,0,715,716,5,80,0,0,716,717,3,62,31,0,717, - 718,5,66,0,0,718,719,3,146,73,0,719,720,5,67,0,0,720,149,1,0,0,0,721, - 727,3,116,58,0,722,727,3,118,59,0,723,727,3,46,23,0,724,727,3,148,74, - 0,725,727,5,98,0,0,726,721,1,0,0,0,726,722,1,0,0,0,726,723,1,0,0,0,726, - 724,1,0,0,0,726,725,1,0,0,0,727,151,1,0,0,0,728,730,3,150,75,0,729,728, - 1,0,0,0,730,733,1,0,0,0,731,729,1,0,0,0,731,732,1,0,0,0,732,153,1,0,0, - 0,733,731,1,0,0,0,734,736,3,34,17,0,735,734,1,0,0,0,736,739,1,0,0,0,737, - 738,1,0,0,0,737,735,1,0,0,0,738,740,1,0,0,0,739,737,1,0,0,0,740,741,5, - 79,0,0,741,743,3,62,31,0,742,744,3,82,41,0,743,742,1,0,0,0,743,744,1, - 0,0,0,744,745,1,0,0,0,745,746,5,66,0,0,746,747,3,152,76,0,747,748,5,67, - 0,0,748,155,1,0,0,0,749,753,3,118,59,0,750,753,5,98,0,0,751,753,3,54, - 27,0,752,749,1,0,0,0,752,750,1,0,0,0,752,751,1,0,0,0,753,157,1,0,0,0, - 754,756,3,156,78,0,755,754,1,0,0,0,756,759,1,0,0,0,757,755,1,0,0,0,757, - 758,1,0,0,0,758,159,1,0,0,0,759,757,1,0,0,0,760,762,3,34,17,0,761,760, - 1,0,0,0,762,765,1,0,0,0,763,764,1,0,0,0,763,761,1,0,0,0,764,766,1,0,0, - 0,765,763,1,0,0,0,766,767,5,83,0,0,767,769,3,62,31,0,768,770,3,82,41, - 0,769,768,1,0,0,0,769,770,1,0,0,0,770,771,1,0,0,0,771,772,5,66,0,0,772, - 773,3,158,79,0,773,774,5,67,0,0,774,161,1,0,0,0,775,778,3,118,59,0,776, - 778,5,98,0,0,777,775,1,0,0,0,777,776,1,0,0,0,778,163,1,0,0,0,779,781, - 3,162,81,0,780,779,1,0,0,0,781,784,1,0,0,0,782,780,1,0,0,0,782,783,1, - 0,0,0,783,165,1,0,0,0,784,782,1,0,0,0,785,787,3,34,17,0,786,785,1,0,0, - 0,787,790,1,0,0,0,788,789,1,0,0,0,788,786,1,0,0,0,789,791,1,0,0,0,790, - 788,1,0,0,0,791,792,5,82,0,0,792,794,3,62,31,0,793,795,3,82,41,0,794, - 793,1,0,0,0,794,795,1,0,0,0,795,796,1,0,0,0,796,797,5,66,0,0,797,798, - 3,164,82,0,798,799,5,67,0,0,799,167,1,0,0,0,800,802,3,34,17,0,801,800, - 1,0,0,0,802,805,1,0,0,0,803,804,1,0,0,0,803,801,1,0,0,0,804,806,1,0,0, - 0,805,803,1,0,0,0,806,807,3,76,38,0,807,808,3,62,31,0,808,809,5,60,0, - 0,809,169,1,0,0,0,810,813,3,168,84,0,811,813,5,98,0,0,812,810,1,0,0,0, - 812,811,1,0,0,0,813,171,1,0,0,0,814,816,3,170,85,0,815,814,1,0,0,0,816, - 819,1,0,0,0,817,815,1,0,0,0,817,818,1,0,0,0,818,173,1,0,0,0,819,817,1, - 0,0,0,820,822,3,34,17,0,821,820,1,0,0,0,822,825,1,0,0,0,823,824,1,0,0, - 0,823,821,1,0,0,0,824,826,1,0,0,0,825,823,1,0,0,0,826,827,5,85,0,0,827, - 829,3,62,31,0,828,830,3,82,41,0,829,828,1,0,0,0,829,830,1,0,0,0,830,831, - 1,0,0,0,831,832,5,66,0,0,832,833,3,172,86,0,833,834,5,67,0,0,834,175, - 1,0,0,0,835,837,3,34,17,0,836,835,1,0,0,0,837,840,1,0,0,0,838,839,1,0, - 0,0,838,836,1,0,0,0,839,841,1,0,0,0,840,838,1,0,0,0,841,842,5,84,0,0, - 842,844,3,62,31,0,843,845,3,82,41,0,844,843,1,0,0,0,844,845,1,0,0,0,845, - 846,1,0,0,0,846,847,5,66,0,0,847,848,3,172,86,0,848,849,5,67,0,0,849, - 177,1,0,0,0,850,852,3,34,17,0,851,850,1,0,0,0,852,855,1,0,0,0,853,851, - 1,0,0,0,853,854,1,0,0,0,854,856,1,0,0,0,855,853,1,0,0,0,856,857,3,62, - 31,0,857,858,5,60,0,0,858,861,1,0,0,0,859,861,5,98,0,0,860,853,1,0,0, - 0,860,859,1,0,0,0,861,179,1,0,0,0,862,864,3,178,89,0,863,862,1,0,0,0, - 864,867,1,0,0,0,865,863,1,0,0,0,865,866,1,0,0,0,866,181,1,0,0,0,867,865, - 1,0,0,0,868,869,5,86,0,0,869,870,3,62,31,0,870,871,5,66,0,0,871,872,3, - 180,90,0,872,873,5,67,0,0,873,183,1,0,0,0,874,877,3,62,31,0,875,876,5, - 63,0,0,876,878,3,72,36,0,877,875,1,0,0,0,877,878,1,0,0,0,878,879,1,0, - 0,0,879,880,5,60,0,0,880,185,1,0,0,0,881,884,3,184,92,0,882,884,5,98, - 0,0,883,881,1,0,0,0,883,882,1,0,0,0,884,187,1,0,0,0,885,887,3,186,93, - 0,886,885,1,0,0,0,887,890,1,0,0,0,888,886,1,0,0,0,888,889,1,0,0,0,889, - 189,1,0,0,0,890,888,1,0,0,0,891,892,5,92,0,0,892,893,3,62,31,0,893,894, - 5,66,0,0,894,895,3,188,94,0,895,896,5,67,0,0,896,191,1,0,0,0,897,898, - 7,4,0,0,898,193,1,0,0,0,899,900,7,5,0,0,900,195,1,0,0,0,901,902,7,6,0, - 0,902,197,1,0,0,0,84,201,222,229,237,251,258,262,267,275,284,292,313, - 321,330,337,343,347,364,371,378,389,402,417,421,424,439,445,457,463,477, - 483,488,494,504,509,518,527,529,538,544,550,567,572,589,602,614,619,625, - 631,644,649,655,661,669,674,680,696,707,712,726,731,737,743,752,757,763, - 769,777,782,788,794,803,812,817,823,829,838,844,853,860,865,877,883,888 - }; - staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); - - antlr4::atn::ATNDeserializer deserializer; - staticData->atn = deserializer.deserialize(staticData->serializedATN); - - const size_t count = staticData->atn->getNumberOfDecisions(); - staticData->decisionToDFA.reserve(count); - for (size_t i = 0; i < count; i++) { - staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); - } - prismParserStaticData = staticData.release(); -} - -} - -PrismParser::PrismParser(TokenStream *input) : PrismParser(input, antlr4::atn::ParserATNSimulatorOptions()) {} - -PrismParser::PrismParser(TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options) : Parser(input) { - PrismParser::initialize(); - _interpreter = new atn::ParserATNSimulator(this, *prismParserStaticData->atn, prismParserStaticData->decisionToDFA, prismParserStaticData->sharedContextCache, options); -} - -PrismParser::~PrismParser() { - delete _interpreter; -} - -const atn::ATN& PrismParser::getATN() const { - return *prismParserStaticData->atn; -} - -std::string PrismParser::getGrammarFileName() const { - return "Prism.g4"; -} - -const std::vector& PrismParser::getRuleNames() const { - return prismParserStaticData->ruleNames; -} - -const dfa::Vocabulary& PrismParser::getVocabulary() const { - return prismParserStaticData->vocabulary; -} - -antlr4::atn::SerializedATNView PrismParser::getSerializedATN() const { - return prismParserStaticData->serializedATN; -} - - -//----------------- ParseContext ------------------------------------------------------------------ - -PrismParser::ParseContext::ParseContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::ParseContext::EOF() { - return getToken(PrismParser::EOF, 0); -} - -std::vector PrismParser::ParseContext::definition() { - return getRuleContexts(); -} - -PrismParser::DefinitionContext* PrismParser::ParseContext::definition(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::ParseContext::getRuleIndex() const { - return PrismParser::RuleParse; -} - -void PrismParser::ParseContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterParse(this); -} - -void PrismParser::ParseContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitParse(this); -} - - -std::any PrismParser::ParseContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitParse(this); - else - return visitor->visitChildren(this); -} - -PrismParser::ParseContext* PrismParser::parse() { - ParseContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 0, PrismParser::RuleParse); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(201); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::T__0 || (((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 1092079585) != 0) { - setState(198); - definition(); - setState(203); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(204); - match(PrismParser::EOF); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- DefinitionContext ------------------------------------------------------------------ - -PrismParser::DefinitionContext::DefinitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Layout_definitionContext* PrismParser::DefinitionContext::layout_definition() { - return getRuleContext(0); -} - -PrismParser::Table_definitionContext* PrismParser::DefinitionContext::table_definition() { - return getRuleContext(0); -} - -PrismParser::Rt_definitionContext* PrismParser::DefinitionContext::rt_definition() { - return getRuleContext(0); -} - -PrismParser::Workgraph_pso_definitionContext* PrismParser::DefinitionContext::workgraph_pso_definition() { - return getRuleContext(0); -} - -PrismParser::Compute_pso_definitionContext* PrismParser::DefinitionContext::compute_pso_definition() { - return getRuleContext(0); -} - -PrismParser::Graphics_pso_definitionContext* PrismParser::DefinitionContext::graphics_pso_definition() { - return getRuleContext(0); -} - -PrismParser::Rtx_pso_definitionContext* PrismParser::DefinitionContext::rtx_pso_definition() { - return getRuleContext(0); -} - -PrismParser::Rtx_pass_definitionContext* PrismParser::DefinitionContext::rtx_pass_definition() { - return getRuleContext(0); -} - -PrismParser::Rtx_raygen_definitionContext* PrismParser::DefinitionContext::rtx_raygen_definition() { - return getRuleContext(0); -} - -PrismParser::Pass_definitionContext* PrismParser::DefinitionContext::pass_definition() { - return getRuleContext(0); -} - -PrismParser::View_definitionContext* PrismParser::DefinitionContext::view_definition() { - return getRuleContext(0); -} - -PrismParser::Pipeline_definitionContext* PrismParser::DefinitionContext::pipeline_definition() { - return getRuleContext(0); -} - -PrismParser::Enum_definitionContext* PrismParser::DefinitionContext::enum_definition() { - return getRuleContext(0); -} - -PrismParser::Const_definitionContext* PrismParser::DefinitionContext::const_definition() { - return getRuleContext(0); -} - -PrismParser::Namespace_definitionContext* PrismParser::DefinitionContext::namespace_definition() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::DefinitionContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::DefinitionContext::getRuleIndex() const { - return PrismParser::RuleDefinition; -} - -void PrismParser::DefinitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterDefinition(this); -} - -void PrismParser::DefinitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitDefinition(this); -} - - -std::any PrismParser::DefinitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitDefinition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::DefinitionContext* PrismParser::definition() { - DefinitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 2, PrismParser::RuleDefinition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(222); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 1, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(206); - layout_definition(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(207); - table_definition(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(208); - rt_definition(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(209); - workgraph_pso_definition(); - break; - } - - case 5: { - enterOuterAlt(_localctx, 5); - setState(210); - compute_pso_definition(); - break; - } - - case 6: { - enterOuterAlt(_localctx, 6); - setState(211); - graphics_pso_definition(); - break; - } - - case 7: { - enterOuterAlt(_localctx, 7); - setState(212); - rtx_pso_definition(); - break; - } - - case 8: { - enterOuterAlt(_localctx, 8); - setState(213); - rtx_pass_definition(); - break; - } - - case 9: { - enterOuterAlt(_localctx, 9); - setState(214); - rtx_raygen_definition(); - break; - } - - case 10: { - enterOuterAlt(_localctx, 10); - setState(215); - pass_definition(); - break; - } - - case 11: { - enterOuterAlt(_localctx, 11); - setState(216); - view_definition(); - break; - } - - case 12: { - enterOuterAlt(_localctx, 12); - setState(217); - pipeline_definition(); - break; - } - - case 13: { - enterOuterAlt(_localctx, 13); - setState(218); - enum_definition(); - break; - } - - case 14: { - enterOuterAlt(_localctx, 14); - setState(219); - const_definition(); - break; - } - - case 15: { - enterOuterAlt(_localctx, 15); - setState(220); - namespace_definition(); - break; - } - - case 16: { - enterOuterAlt(_localctx, 16); - setState(221); - match(PrismParser::COMMENT); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Namespace_definitionContext ------------------------------------------------------------------ - -PrismParser::Namespace_definitionContext::Namespace_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Namespace_headerContext* PrismParser::Namespace_definitionContext::namespace_header() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Namespace_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -tree::TerminalNode* PrismParser::Namespace_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::Namespace_definitionContext::definition() { - return getRuleContexts(); -} - -PrismParser::DefinitionContext* PrismParser::Namespace_definitionContext::definition(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Namespace_definitionContext::getRuleIndex() const { - return PrismParser::RuleNamespace_definition; -} - -void PrismParser::Namespace_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNamespace_definition(this); -} - -void PrismParser::Namespace_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNamespace_definition(this); -} - - -std::any PrismParser::Namespace_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNamespace_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Namespace_definitionContext* PrismParser::namespace_definition() { - Namespace_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 4, PrismParser::RuleNamespace_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(224); - namespace_header(); - setState(225); - match(PrismParser::OBRACE); - setState(229); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::T__0 || (((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 1092079585) != 0) { - setState(226); - definition(); - setState(231); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(232); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Namespace_headerContext ------------------------------------------------------------------ - -PrismParser::Namespace_headerContext::Namespace_headerContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Namespace_headerContext::NAMESPACE() { - return getToken(PrismParser::NAMESPACE, 0); -} - -PrismParser::Name_idContext* PrismParser::Namespace_headerContext::name_id() { - return getRuleContext(0); -} - -std::vector PrismParser::Namespace_headerContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Namespace_headerContext::option_block(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Namespace_headerContext::getRuleIndex() const { - return PrismParser::RuleNamespace_header; -} - -void PrismParser::Namespace_headerContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNamespace_header(this); -} - -void PrismParser::Namespace_headerContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNamespace_header(this); -} - - -std::any PrismParser::Namespace_headerContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNamespace_header(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Namespace_headerContext* PrismParser::namespace_header() { - Namespace_headerContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 6, PrismParser::RuleNamespace_header); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(237); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 3, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(234); - option_block(); - } - setState(239); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 3, _ctx); - } - setState(240); - match(PrismParser::NAMESPACE); - setState(241); - name_id(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Const_definitionContext ------------------------------------------------------------------ - -PrismParser::Const_definitionContext::Const_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Name_idContext* PrismParser::Const_definitionContext::name_id() { - return getRuleContext(0); -} - -PrismParser::Options_assignContext* PrismParser::Const_definitionContext::options_assign() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Const_definitionContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - - -size_t PrismParser::Const_definitionContext::getRuleIndex() const { - return PrismParser::RuleConst_definition; -} - -void PrismParser::Const_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterConst_definition(this); -} - -void PrismParser::Const_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitConst_definition(this); -} - - -std::any PrismParser::Const_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitConst_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Const_definitionContext* PrismParser::const_definition() { - Const_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 8, PrismParser::RuleConst_definition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(243); - match(PrismParser::T__0); - setState(244); - name_id(); - setState(245); - options_assign(); - setState(246); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Bind_optionContext ------------------------------------------------------------------ - -PrismParser::Bind_optionContext::Bind_optionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Bind_optionContext::flag_value_holder() { - return getRuleContexts(); -} - -PrismParser::Flag_value_holderContext* PrismParser::Bind_optionContext::flag_value_holder(size_t i) { - return getRuleContext(i); -} - -PrismParser::Owner_idContext* PrismParser::Bind_optionContext::owner_id() { - return getRuleContext(0); -} - -std::vector PrismParser::Bind_optionContext::PIPE() { - return getTokens(PrismParser::PIPE); -} - -tree::TerminalNode* PrismParser::Bind_optionContext::PIPE(size_t i) { - return getToken(PrismParser::PIPE, i); -} - -PrismParser::Raw_valueContext* PrismParser::Bind_optionContext::raw_value() { - return getRuleContext(0); -} - -PrismParser::Cond_exprContext* PrismParser::Bind_optionContext::cond_expr() { - return getRuleContext(0); -} - - -size_t PrismParser::Bind_optionContext::getRuleIndex() const { - return PrismParser::RuleBind_option; -} - -void PrismParser::Bind_optionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBind_option(this); -} - -void PrismParser::Bind_optionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBind_option(this); -} - - -std::any PrismParser::Bind_optionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBind_option(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Bind_optionContext* PrismParser::bind_option() { - Bind_optionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 10, PrismParser::RuleBind_option); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(262); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 6, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(251); - _errHandler->sync(this); - - switch (getInterpreter()->adaptivePredict(_input, 4, _ctx)) { - case 1: { - setState(248); - owner_id(); - setState(249); - match(PrismParser::T__1); - break; - } - - default: - break; - } - setState(253); - flag_value_holder(); - setState(256); - _errHandler->sync(this); - _la = _input->LA(1); - do { - setState(254); - match(PrismParser::PIPE); - setState(255); - flag_value_holder(); - setState(258); - _errHandler->sync(this); - _la = _input->LA(1); - } while (_la == PrismParser::PIPE); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(260); - raw_value(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(261); - cond_expr(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Cond_exprContext ------------------------------------------------------------------ - -PrismParser::Cond_exprContext::Cond_exprContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Cond_exprContext::cond_term() { - return getRuleContexts(); -} - -PrismParser::Cond_termContext* PrismParser::Cond_exprContext::cond_term(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Cond_exprContext::getRuleIndex() const { - return PrismParser::RuleCond_expr; -} - -void PrismParser::Cond_exprContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCond_expr(this); -} - -void PrismParser::Cond_exprContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCond_expr(this); -} - - -std::any PrismParser::Cond_exprContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCond_expr(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Cond_exprContext* PrismParser::cond_expr() { - Cond_exprContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 12, PrismParser::RuleCond_expr); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(265); - _errHandler->sync(this); - _la = _input->LA(1); - do { - setState(264); - cond_term(); - setState(267); - _errHandler->sync(this); - _la = _input->LA(1); - } while (((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 864515206661791744) != 0 || (((_la - 64) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 64)) & 72477573319) != 0); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Cond_termContext ------------------------------------------------------------------ - -PrismParser::Cond_termContext::Cond_termContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Qualified_refContext* PrismParser::Cond_termContext::qualified_ref() { - return getRuleContext(0); -} - -PrismParser::Function_idContext* PrismParser::Cond_termContext::function_id() { - return getRuleContext(0); -} - -PrismParser::CallContext* PrismParser::Cond_termContext::call() { - return getRuleContext(0); -} - -PrismParser::Member_refContext* PrismParser::Cond_termContext::member_ref() { - return getRuleContext(0); -} - -PrismParser::Value_idContext* PrismParser::Cond_termContext::value_id() { - return getRuleContext(0); -} - -PrismParser::Cond_opContext* PrismParser::Cond_termContext::cond_op() { - return getRuleContext(0); -} - - -size_t PrismParser::Cond_termContext::getRuleIndex() const { - return PrismParser::RuleCond_term; -} - -void PrismParser::Cond_termContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCond_term(this); -} - -void PrismParser::Cond_termContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCond_term(this); -} - - -std::any PrismParser::Cond_termContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCond_term(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Cond_termContext* PrismParser::cond_term() { - Cond_termContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 14, PrismParser::RuleCond_term); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(275); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 8, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(269); - qualified_ref(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(270); - function_id(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(271); - call(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(272); - member_ref(); - break; - } - - case 5: { - enterOuterAlt(_localctx, 5); - setState(273); - value_id(); - break; - } - - case 6: { - enterOuterAlt(_localctx, 6); - setState(274); - cond_op(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- CallContext ------------------------------------------------------------------ - -PrismParser::CallContext::CallContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::CallContext::ID() { - return getToken(PrismParser::ID, 0); -} - -tree::TerminalNode* PrismParser::CallContext::OPAR() { - return getToken(PrismParser::OPAR, 0); -} - -std::vector PrismParser::CallContext::call_arg() { - return getRuleContexts(); -} - -PrismParser::Call_argContext* PrismParser::CallContext::call_arg(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* PrismParser::CallContext::CPAR() { - return getToken(PrismParser::CPAR, 0); -} - - -size_t PrismParser::CallContext::getRuleIndex() const { - return PrismParser::RuleCall; -} - -void PrismParser::CallContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCall(this); -} - -void PrismParser::CallContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCall(this); -} - - -std::any PrismParser::CallContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCall(this); - else - return visitor->visitChildren(this); -} - -PrismParser::CallContext* PrismParser::call() { - CallContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 16, PrismParser::RuleCall); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(277); - match(PrismParser::ID); - setState(278); - match(PrismParser::OPAR); - setState(279); - call_arg(); - setState(284); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::T__2) { - setState(280); - match(PrismParser::T__2); - setState(281); - call_arg(); - setState(286); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(287); - match(PrismParser::CPAR); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Call_argContext ------------------------------------------------------------------ - -PrismParser::Call_argContext::Call_argContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Call_argContext::cond_term() { - return getRuleContexts(); -} - -PrismParser::Cond_termContext* PrismParser::Call_argContext::cond_term(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Call_argContext::getRuleIndex() const { - return PrismParser::RuleCall_arg; -} - -void PrismParser::Call_argContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCall_arg(this); -} - -void PrismParser::Call_argContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCall_arg(this); -} - - -std::any PrismParser::Call_argContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCall_arg(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Call_argContext* PrismParser::call_arg() { - Call_argContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 18, PrismParser::RuleCall_arg); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(290); - _errHandler->sync(this); - alt = 1; - do { - switch (alt) { - case 1: { - setState(289); - cond_term(); - break; - } - - default: - throw NoViableAltException(this); - } - setState(292); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 10, _ctx); - } while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Qualified_refContext ------------------------------------------------------------------ - -PrismParser::Qualified_refContext::Qualified_refContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Owner_idContext* PrismParser::Qualified_refContext::owner_id() { - return getRuleContext(0); -} - -PrismParser::Value_idContext* PrismParser::Qualified_refContext::value_id() { - return getRuleContext(0); -} - - -size_t PrismParser::Qualified_refContext::getRuleIndex() const { - return PrismParser::RuleQualified_ref; -} - -void PrismParser::Qualified_refContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterQualified_ref(this); -} - -void PrismParser::Qualified_refContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitQualified_ref(this); -} - - -std::any PrismParser::Qualified_refContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitQualified_ref(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Qualified_refContext* PrismParser::qualified_ref() { - Qualified_refContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 20, PrismParser::RuleQualified_ref); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(294); - owner_id(); - setState(295); - match(PrismParser::T__1); - setState(296); - value_id(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Member_refContext ------------------------------------------------------------------ - -PrismParser::Member_refContext::Member_refContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Member_refContext::name_id() { - return getRuleContexts(); -} - -PrismParser::Name_idContext* PrismParser::Member_refContext::name_id(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* PrismParser::Member_refContext::DOT() { - return getToken(PrismParser::DOT, 0); -} - - -size_t PrismParser::Member_refContext::getRuleIndex() const { - return PrismParser::RuleMember_ref; -} - -void PrismParser::Member_refContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterMember_ref(this); -} - -void PrismParser::Member_refContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitMember_ref(this); -} - - -std::any PrismParser::Member_refContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitMember_ref(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Member_refContext* PrismParser::member_ref() { - Member_refContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 22, PrismParser::RuleMember_ref); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(298); - name_id(); - setState(299); - match(PrismParser::DOT); - setState(300); - name_id(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Cond_opContext ------------------------------------------------------------------ - -PrismParser::Cond_opContext::Cond_opContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Cond_opContext::AND() { - return getToken(PrismParser::AND, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::OR() { - return getToken(PrismParser::OR, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::NOT() { - return getToken(PrismParser::NOT, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::EQ() { - return getToken(PrismParser::EQ, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::NEQ() { - return getToken(PrismParser::NEQ, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::GTEQ() { - return getToken(PrismParser::GTEQ, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::LTEQ() { - return getToken(PrismParser::LTEQ, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::GT() { - return getToken(PrismParser::GT, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::LT() { - return getToken(PrismParser::LT, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::OPAR() { - return getToken(PrismParser::OPAR, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::CPAR() { - return getToken(PrismParser::CPAR, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::PLUS() { - return getToken(PrismParser::PLUS, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::MINUS() { - return getToken(PrismParser::MINUS, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::POINTER() { - return getToken(PrismParser::POINTER, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::DIV() { - return getToken(PrismParser::DIV, 0); -} - -tree::TerminalNode* PrismParser::Cond_opContext::MOD() { - return getToken(PrismParser::MOD, 0); -} - - -size_t PrismParser::Cond_opContext::getRuleIndex() const { - return PrismParser::RuleCond_op; -} - -void PrismParser::Cond_opContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCond_op(this); -} - -void PrismParser::Cond_opContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCond_op(this); -} - - -std::any PrismParser::Cond_opContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCond_op(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Cond_opContext* PrismParser::cond_op() { - Cond_opContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 24, PrismParser::RuleCond_op); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(302); - _la = _input->LA(1); - if (!((((_la - 45) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 45)) & 36028797020561403) != 0)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Flag_value_holderContext ------------------------------------------------------------------ - -PrismParser::Flag_value_holderContext::Flag_value_holderContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Value_idContext* PrismParser::Flag_value_holderContext::value_id() { - return getRuleContext(0); -} - - -size_t PrismParser::Flag_value_holderContext::getRuleIndex() const { - return PrismParser::RuleFlag_value_holder; -} - -void PrismParser::Flag_value_holderContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFlag_value_holder(this); -} - -void PrismParser::Flag_value_holderContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFlag_value_holder(this); -} - - -std::any PrismParser::Flag_value_holderContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFlag_value_holder(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Flag_value_holderContext* PrismParser::flag_value_holder() { - Flag_value_holderContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 26, PrismParser::RuleFlag_value_holder); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(304); - value_id(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Raw_valueContext ------------------------------------------------------------------ - -PrismParser::Raw_valueContext::Raw_valueContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Raw_valueContext::RAWEXPR() { - return getToken(PrismParser::RAWEXPR, 0); -} - - -size_t PrismParser::Raw_valueContext::getRuleIndex() const { - return PrismParser::RuleRaw_value; -} - -void PrismParser::Raw_valueContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRaw_value(this); -} - -void PrismParser::Raw_valueContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRaw_value(this); -} - - -std::any PrismParser::Raw_valueContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRaw_value(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Raw_valueContext* PrismParser::raw_value() { - Raw_valueContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 28, PrismParser::RuleRaw_value); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(306); - match(PrismParser::RAWEXPR); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Options_assignContext ------------------------------------------------------------------ - -PrismParser::Options_assignContext::Options_assignContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Options_assignContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Bind_optionContext* PrismParser::Options_assignContext::bind_option() { - return getRuleContext(0); -} - - -size_t PrismParser::Options_assignContext::getRuleIndex() const { - return PrismParser::RuleOptions_assign; -} - -void PrismParser::Options_assignContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterOptions_assign(this); -} - -void PrismParser::Options_assignContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitOptions_assign(this); -} - - -std::any PrismParser::Options_assignContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitOptions_assign(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Options_assignContext* PrismParser::options_assign() { - Options_assignContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 30, PrismParser::RuleOptions_assign); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(308); - match(PrismParser::ASSIGN); - setState(309); - bind_option(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- OptionContext ------------------------------------------------------------------ - -PrismParser::OptionContext::OptionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Name_idContext* PrismParser::OptionContext::name_id() { - return getRuleContext(0); -} - -PrismParser::Options_assignContext* PrismParser::OptionContext::options_assign() { - return getRuleContext(0); -} - - -size_t PrismParser::OptionContext::getRuleIndex() const { - return PrismParser::RuleOption; -} - -void PrismParser::OptionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterOption(this); -} - -void PrismParser::OptionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitOption(this); -} - - -std::any PrismParser::OptionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitOption(this); - else - return visitor->visitChildren(this); -} - -PrismParser::OptionContext* PrismParser::option() { - OptionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 32, PrismParser::RuleOption); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(311); - name_id(); - setState(313); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::ASSIGN) { - setState(312); - options_assign(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Option_blockContext ------------------------------------------------------------------ - -PrismParser::Option_blockContext::Option_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Option_blockContext::OSBRACE() { - return getToken(PrismParser::OSBRACE, 0); -} - -std::vector PrismParser::Option_blockContext::option() { - return getRuleContexts(); -} - -PrismParser::OptionContext* PrismParser::Option_blockContext::option(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* PrismParser::Option_blockContext::CSBRACE() { - return getToken(PrismParser::CSBRACE, 0); -} - - -size_t PrismParser::Option_blockContext::getRuleIndex() const { - return PrismParser::RuleOption_block; -} - -void PrismParser::Option_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterOption_block(this); -} - -void PrismParser::Option_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitOption_block(this); -} - - -std::any PrismParser::Option_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitOption_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Option_blockContext* PrismParser::option_block() { - Option_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 34, PrismParser::RuleOption_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(315); - match(PrismParser::OSBRACE); - setState(316); - option(); - setState(321); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::T__2) { - setState(317); - match(PrismParser::T__2); - setState(318); - option(); - setState(323); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(324); - match(PrismParser::CSBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Array_count_idContext ------------------------------------------------------------------ - -PrismParser::Array_count_idContext::Array_count_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Array_count_idContext::INT_SCALAR() { - return getToken(PrismParser::INT_SCALAR, 0); -} - - -size_t PrismParser::Array_count_idContext::getRuleIndex() const { - return PrismParser::RuleArray_count_id; -} - -void PrismParser::Array_count_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterArray_count_id(this); -} - -void PrismParser::Array_count_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitArray_count_id(this); -} - - -std::any PrismParser::Array_count_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitArray_count_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Array_count_idContext* PrismParser::array_count_id() { - Array_count_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 36, PrismParser::RuleArray_count_id); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(326); - match(PrismParser::INT_SCALAR); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ArrayContext ------------------------------------------------------------------ - -PrismParser::ArrayContext::ArrayContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::ArrayContext::OSBRACE() { - return getToken(PrismParser::OSBRACE, 0); -} - -tree::TerminalNode* PrismParser::ArrayContext::CSBRACE() { - return getToken(PrismParser::CSBRACE, 0); -} - -PrismParser::Array_count_idContext* PrismParser::ArrayContext::array_count_id() { - return getRuleContext(0); -} - - -size_t PrismParser::ArrayContext::getRuleIndex() const { - return PrismParser::RuleArray; -} - -void PrismParser::ArrayContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterArray(this); -} - -void PrismParser::ArrayContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitArray(this); -} - - -std::any PrismParser::ArrayContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitArray(this); - else - return visitor->visitChildren(this); -} - -PrismParser::ArrayContext* PrismParser::array() { - ArrayContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 38, PrismParser::RuleArray); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(328); - match(PrismParser::OSBRACE); - setState(330); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::INT_SCALAR) { - setState(329); - array_count_id(); - } - setState(332); - match(PrismParser::CSBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Value_declarationContext ------------------------------------------------------------------ - -PrismParser::Value_declarationContext::Value_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Type_idContext* PrismParser::Value_declarationContext::type_id() { - return getRuleContext(0); -} - -PrismParser::Name_idContext* PrismParser::Value_declarationContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Value_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::Value_declarationContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Value_declarationContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::ArrayContext* PrismParser::Value_declarationContext::array() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Value_declarationContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Value_idContext* PrismParser::Value_declarationContext::value_id() { - return getRuleContext(0); -} - - -size_t PrismParser::Value_declarationContext::getRuleIndex() const { - return PrismParser::RuleValue_declaration; -} - -void PrismParser::Value_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterValue_declaration(this); -} - -void PrismParser::Value_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitValue_declaration(this); -} - - -std::any PrismParser::Value_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitValue_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Value_declarationContext* PrismParser::value_declaration() { - Value_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 40, PrismParser::RuleValue_declaration); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(337); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 14, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(334); - option_block(); - } - setState(339); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 14, _ctx); - } - setState(340); - type_id(); - setState(341); - name_id(); - setState(343); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::OSBRACE) { - setState(342); - array(); - } - setState(347); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::ASSIGN) { - setState(345); - match(PrismParser::ASSIGN); - setState(346); - value_id(); - } - setState(349); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Slot_declarationContext ------------------------------------------------------------------ - -PrismParser::Slot_declarationContext::Slot_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Slot_declarationContext::SLOT() { - return getToken(PrismParser::SLOT, 0); -} - -PrismParser::Name_idContext* PrismParser::Slot_declarationContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Slot_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - - -size_t PrismParser::Slot_declarationContext::getRuleIndex() const { - return PrismParser::RuleSlot_declaration; -} - -void PrismParser::Slot_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSlot_declaration(this); -} - -void PrismParser::Slot_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSlot_declaration(this); -} - - -std::any PrismParser::Slot_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSlot_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Slot_declarationContext* PrismParser::slot_declaration() { - Slot_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 42, PrismParser::RuleSlot_declaration); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(351); - match(PrismParser::SLOT); - setState(352); - name_id(); - setState(353); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Sampler_declarationContext ------------------------------------------------------------------ - -PrismParser::Sampler_declarationContext::Sampler_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Name_idContext* PrismParser::Sampler_declarationContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Sampler_declarationContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Value_idContext* PrismParser::Sampler_declarationContext::value_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Sampler_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - - -size_t PrismParser::Sampler_declarationContext::getRuleIndex() const { - return PrismParser::RuleSampler_declaration; -} - -void PrismParser::Sampler_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterSampler_declaration(this); -} - -void PrismParser::Sampler_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitSampler_declaration(this); -} - - -std::any PrismParser::Sampler_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitSampler_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Sampler_declarationContext* PrismParser::sampler_declaration() { - Sampler_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 44, PrismParser::RuleSampler_declaration); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(355); - match(PrismParser::T__3); - setState(356); - name_id(); - setState(357); - match(PrismParser::ASSIGN); - setState(358); - value_id(); - setState(359); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Define_declarationContext ------------------------------------------------------------------ - -PrismParser::Define_declarationContext::Define_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Name_idContext* PrismParser::Define_declarationContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Define_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::Define_declarationContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Define_declarationContext::option_block(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* PrismParser::Define_declarationContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Array_value_idsContext* PrismParser::Define_declarationContext::array_value_ids() { - return getRuleContext(0); -} - - -size_t PrismParser::Define_declarationContext::getRuleIndex() const { - return PrismParser::RuleDefine_declaration; -} - -void PrismParser::Define_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterDefine_declaration(this); -} - -void PrismParser::Define_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitDefine_declaration(this); -} - - -std::any PrismParser::Define_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitDefine_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Define_declarationContext* PrismParser::define_declaration() { - Define_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 46, PrismParser::RuleDefine_declaration); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(364); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 17, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(361); - option_block(); - } - setState(366); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 17, _ctx); - } - setState(367); - match(PrismParser::T__4); - setState(368); - name_id(); - setState(371); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::ASSIGN) { - setState(369); - match(PrismParser::ASSIGN); - setState(370); - array_value_ids(); - } - setState(373); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtv_formats_declarationContext ------------------------------------------------------------------ - -PrismParser::Rtv_formats_declarationContext::Rtv_formats_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Rtv_formats_declarationContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Array_value_idsContext* PrismParser::Rtv_formats_declarationContext::array_value_ids() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtv_formats_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::Rtv_formats_declarationContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Rtv_formats_declarationContext::option_block(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Rtv_formats_declarationContext::getRuleIndex() const { - return PrismParser::RuleRtv_formats_declaration; -} - -void PrismParser::Rtv_formats_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtv_formats_declaration(this); -} - -void PrismParser::Rtv_formats_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtv_formats_declaration(this); -} - - -std::any PrismParser::Rtv_formats_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtv_formats_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtv_formats_declarationContext* PrismParser::rtv_formats_declaration() { - Rtv_formats_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 48, PrismParser::RuleRtv_formats_declaration); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(378); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 19, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(375); - option_block(); - } - setState(380); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 19, _ctx); - } - setState(381); - match(PrismParser::T__5); - setState(382); - match(PrismParser::ASSIGN); - setState(383); - array_value_ids(); - setState(384); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Blends_declarationContext ------------------------------------------------------------------ - -PrismParser::Blends_declarationContext::Blends_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Blends_declarationContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Array_value_idsContext* PrismParser::Blends_declarationContext::array_value_ids() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Blends_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::Blends_declarationContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Blends_declarationContext::option_block(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Blends_declarationContext::getRuleIndex() const { - return PrismParser::RuleBlends_declaration; -} - -void PrismParser::Blends_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBlends_declaration(this); -} - -void PrismParser::Blends_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBlends_declaration(this); -} - - -std::any PrismParser::Blends_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBlends_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Blends_declarationContext* PrismParser::blends_declaration() { - Blends_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 50, PrismParser::RuleBlends_declaration); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(389); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 20, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(386); - option_block(); - } - setState(391); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 20, _ctx); - } - setState(392); - match(PrismParser::T__6); - setState(393); - match(PrismParser::ASSIGN); - setState(394); - array_value_ids(); - setState(395); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- PointerContext ------------------------------------------------------------------ - -PrismParser::PointerContext::PointerContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::PointerContext::POINTER() { - return getToken(PrismParser::POINTER, 0); -} - - -size_t PrismParser::PointerContext::getRuleIndex() const { - return PrismParser::RulePointer; -} - -void PrismParser::PointerContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPointer(this); -} - -void PrismParser::PointerContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPointer(this); -} - - -std::any PrismParser::PointerContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPointer(this); - else - return visitor->visitChildren(this); -} - -PrismParser::PointerContext* PrismParser::pointer() { - PointerContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 52, PrismParser::RulePointer); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(397); - match(PrismParser::POINTER); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Pso_paramContext ------------------------------------------------------------------ - -PrismParser::Pso_paramContext::Pso_paramContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Pso_param_idContext* PrismParser::Pso_paramContext::pso_param_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Pso_paramContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Value_idContext* PrismParser::Pso_paramContext::value_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Pso_paramContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::Pso_paramContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Pso_paramContext::option_block(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Pso_paramContext::getRuleIndex() const { - return PrismParser::RulePso_param; -} - -void PrismParser::Pso_paramContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPso_param(this); -} - -void PrismParser::Pso_paramContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPso_param(this); -} - - -std::any PrismParser::Pso_paramContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPso_param(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Pso_paramContext* PrismParser::pso_param() { - Pso_paramContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 54, PrismParser::RulePso_param); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(402); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 21, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(399); - option_block(); - } - setState(404); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 21, _ctx); - } - setState(405); - pso_param_id(); - setState(406); - match(PrismParser::ASSIGN); - setState(407); - value_id(); - setState(408); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Class_no_templateContext ------------------------------------------------------------------ - -PrismParser::Class_no_templateContext::Class_no_templateContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Class_no_templateContext::ID() { - return getToken(PrismParser::ID, 0); -} - - -size_t PrismParser::Class_no_templateContext::getRuleIndex() const { - return PrismParser::RuleClass_no_template; -} - -void PrismParser::Class_no_templateContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterClass_no_template(this); -} - -void PrismParser::Class_no_templateContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitClass_no_template(this); -} - - -std::any PrismParser::Class_no_templateContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitClass_no_template(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Class_no_templateContext* PrismParser::class_no_template() { - Class_no_templateContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 56, PrismParser::RuleClass_no_template); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(410); - match(PrismParser::ID); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Type_with_templateContext ------------------------------------------------------------------ - -PrismParser::Type_with_templateContext::Type_with_templateContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Class_no_templateContext* PrismParser::Type_with_templateContext::class_no_template() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Type_with_templateContext::LT() { - return getToken(PrismParser::LT, 0); -} - -tree::TerminalNode* PrismParser::Type_with_templateContext::GT() { - return getToken(PrismParser::GT, 0); -} - -PrismParser::PointerContext* PrismParser::Type_with_templateContext::pointer() { - return getRuleContext(0); -} - -std::vector PrismParser::Type_with_templateContext::template_id() { - return getRuleContexts(); -} - -PrismParser::Template_idContext* PrismParser::Type_with_templateContext::template_id(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Type_with_templateContext::getRuleIndex() const { - return PrismParser::RuleType_with_template; -} - -void PrismParser::Type_with_templateContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterType_with_template(this); -} - -void PrismParser::Type_with_templateContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitType_with_template(this); -} - - -std::any PrismParser::Type_with_templateContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitType_with_template(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Type_with_templateContext* PrismParser::type_with_template() { - Type_with_templateContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 58, PrismParser::RuleType_with_template); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(412); - class_no_template(); - setState(421); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::LT) { - setState(413); - match(PrismParser::LT); - setState(417); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::ID) { - setState(414); - template_id(); - setState(419); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(420); - match(PrismParser::GT); - } - setState(424); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::POINTER) { - setState(423); - pointer(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Inherit_idContext ------------------------------------------------------------------ - -PrismParser::Inherit_idContext::Inherit_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Inherit_idContext::ID() { - return getToken(PrismParser::ID, 0); -} - - -size_t PrismParser::Inherit_idContext::getRuleIndex() const { - return PrismParser::RuleInherit_id; -} - -void PrismParser::Inherit_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterInherit_id(this); -} - -void PrismParser::Inherit_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitInherit_id(this); -} - - -std::any PrismParser::Inherit_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitInherit_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Inherit_idContext* PrismParser::inherit_id() { - Inherit_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 60, PrismParser::RuleInherit_id); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(426); - match(PrismParser::ID); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Name_idContext ------------------------------------------------------------------ - -PrismParser::Name_idContext::Name_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Name_idContext::ID() { - return getToken(PrismParser::ID, 0); -} - - -size_t PrismParser::Name_idContext::getRuleIndex() const { - return PrismParser::RuleName_id; -} - -void PrismParser::Name_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterName_id(this); -} - -void PrismParser::Name_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitName_id(this); -} - - -std::any PrismParser::Name_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitName_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Name_idContext* PrismParser::name_id() { - Name_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 62, PrismParser::RuleName_id); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(428); - match(PrismParser::ID); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Option_idContext ------------------------------------------------------------------ - -PrismParser::Option_idContext::Option_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Option_idContext::ID() { - return getToken(PrismParser::ID, 0); -} - - -size_t PrismParser::Option_idContext::getRuleIndex() const { - return PrismParser::RuleOption_id; -} - -void PrismParser::Option_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterOption_id(this); -} - -void PrismParser::Option_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitOption_id(this); -} - - -std::any PrismParser::Option_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitOption_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Option_idContext* PrismParser::option_id() { - Option_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 64, PrismParser::RuleOption_id); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(430); - match(PrismParser::ID); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Owner_idContext ------------------------------------------------------------------ - -PrismParser::Owner_idContext::Owner_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Owner_idContext::ID() { - return getToken(PrismParser::ID, 0); -} - - -size_t PrismParser::Owner_idContext::getRuleIndex() const { - return PrismParser::RuleOwner_id; -} - -void PrismParser::Owner_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterOwner_id(this); -} - -void PrismParser::Owner_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitOwner_id(this); -} - - -std::any PrismParser::Owner_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitOwner_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Owner_idContext* PrismParser::owner_id() { - Owner_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 66, PrismParser::RuleOwner_id); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(432); - match(PrismParser::ID); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Template_idContext ------------------------------------------------------------------ - -PrismParser::Template_idContext::Template_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Template_idContext::ID() { - return getToken(PrismParser::ID, 0); -} - - -size_t PrismParser::Template_idContext::getRuleIndex() const { - return PrismParser::RuleTemplate_id; -} - -void PrismParser::Template_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterTemplate_id(this); -} - -void PrismParser::Template_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitTemplate_id(this); -} - - -std::any PrismParser::Template_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitTemplate_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Template_idContext* PrismParser::template_id() { - Template_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 68, PrismParser::RuleTemplate_id); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(434); - match(PrismParser::ID); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Function_idContext ------------------------------------------------------------------ - -PrismParser::Function_idContext::Function_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Function_idContext::ID() { - return getToken(PrismParser::ID, 0); -} - -tree::TerminalNode* PrismParser::Function_idContext::OPAR() { - return getToken(PrismParser::OPAR, 0); -} - -tree::TerminalNode* PrismParser::Function_idContext::CPAR() { - return getToken(PrismParser::CPAR, 0); -} - -std::vector PrismParser::Function_idContext::value_id_ignore() { - return getRuleContexts(); -} - -PrismParser::Value_id_ignoreContext* PrismParser::Function_idContext::value_id_ignore(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Function_idContext::getRuleIndex() const { - return PrismParser::RuleFunction_id; -} - -void PrismParser::Function_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFunction_id(this); -} - -void PrismParser::Function_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFunction_id(this); -} - - -std::any PrismParser::Function_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFunction_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Function_idContext* PrismParser::function_id() { - Function_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 70, PrismParser::RuleFunction_id); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(436); - match(PrismParser::ID); - setState(437); - match(PrismParser::OPAR); - setState(439); - _errHandler->sync(this); - - _la = _input->LA(1); - if ((((_la - 70) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 70)) & 58720259) != 0) { - setState(438); - value_id_ignore(); - } - setState(445); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::T__2) { - setState(441); - match(PrismParser::T__2); - setState(442); - value_id_ignore(); - setState(447); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(448); - match(PrismParser::CPAR); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Value_idContext ------------------------------------------------------------------ - -PrismParser::Value_idContext::Value_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Shader_typeContext* PrismParser::Value_idContext::shader_type() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Value_idContext::ID() { - return getToken(PrismParser::ID, 0); -} - -tree::TerminalNode* PrismParser::Value_idContext::INT_SCALAR() { - return getToken(PrismParser::INT_SCALAR, 0); -} - -tree::TerminalNode* PrismParser::Value_idContext::FLOAT_SCALAR() { - return getToken(PrismParser::FLOAT_SCALAR, 0); -} - -PrismParser::Bool_typeContext* PrismParser::Value_idContext::bool_type() { - return getRuleContext(0); -} - -PrismParser::Function_idContext* PrismParser::Value_idContext::function_id() { - return getRuleContext(0); -} - -PrismParser::Array_value_idsContext* PrismParser::Value_idContext::array_value_ids() { - return getRuleContext(0); -} - - -size_t PrismParser::Value_idContext::getRuleIndex() const { - return PrismParser::RuleValue_id; -} - -void PrismParser::Value_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterValue_id(this); -} - -void PrismParser::Value_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitValue_id(this); -} - - -std::any PrismParser::Value_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitValue_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Value_idContext* PrismParser::value_id() { - Value_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 72, PrismParser::RuleValue_id); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(457); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 27, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(450); - shader_type(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(451); - match(PrismParser::ID); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(452); - match(PrismParser::INT_SCALAR); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(453); - match(PrismParser::FLOAT_SCALAR); - break; - } - - case 5: { - enterOuterAlt(_localctx, 5); - setState(454); - bool_type(); - break; - } - - case 6: { - enterOuterAlt(_localctx, 6); - setState(455); - function_id(); - break; - } - - case 7: { - enterOuterAlt(_localctx, 7); - setState(456); - array_value_ids(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Value_id_ignoreContext ------------------------------------------------------------------ - -PrismParser::Value_id_ignoreContext::Value_id_ignoreContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Value_id_ignoreContext::ID() { - return getToken(PrismParser::ID, 0); -} - -tree::TerminalNode* PrismParser::Value_id_ignoreContext::INT_SCALAR() { - return getToken(PrismParser::INT_SCALAR, 0); -} - -tree::TerminalNode* PrismParser::Value_id_ignoreContext::FLOAT_SCALAR() { - return getToken(PrismParser::FLOAT_SCALAR, 0); -} - -PrismParser::Bool_typeContext* PrismParser::Value_id_ignoreContext::bool_type() { - return getRuleContext(0); -} - - -size_t PrismParser::Value_id_ignoreContext::getRuleIndex() const { - return PrismParser::RuleValue_id_ignore; -} - -void PrismParser::Value_id_ignoreContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterValue_id_ignore(this); -} - -void PrismParser::Value_id_ignoreContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitValue_id_ignore(this); -} - - -std::any PrismParser::Value_id_ignoreContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitValue_id_ignore(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Value_id_ignoreContext* PrismParser::value_id_ignore() { - Value_id_ignoreContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 74, PrismParser::RuleValue_id_ignore); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(463); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::ID: { - enterOuterAlt(_localctx, 1); - setState(459); - match(PrismParser::ID); - break; - } - - case PrismParser::INT_SCALAR: { - enterOuterAlt(_localctx, 2); - setState(460); - match(PrismParser::INT_SCALAR); - break; - } - - case PrismParser::FLOAT_SCALAR: { - enterOuterAlt(_localctx, 3); - setState(461); - match(PrismParser::FLOAT_SCALAR); - break; - } - - case PrismParser::TRUE: - case PrismParser::FALSE: { - enterOuterAlt(_localctx, 4); - setState(462); - bool_type(); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Type_idContext ------------------------------------------------------------------ - -PrismParser::Type_idContext::Type_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Type_with_templateContext* PrismParser::Type_idContext::type_with_template() { - return getRuleContext(0); -} - - -size_t PrismParser::Type_idContext::getRuleIndex() const { - return PrismParser::RuleType_id; -} - -void PrismParser::Type_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterType_id(this); -} - -void PrismParser::Type_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitType_id(this); -} - - -std::any PrismParser::Type_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitType_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Type_idContext* PrismParser::type_id() { - Type_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 76, PrismParser::RuleType_id); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(465); - type_with_template(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Insert_blockContext ------------------------------------------------------------------ - -PrismParser::Insert_blockContext::Insert_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Insert_blockContext::INSERT_BLOCK() { - return getToken(PrismParser::INSERT_BLOCK, 0); -} - - -size_t PrismParser::Insert_blockContext::getRuleIndex() const { - return PrismParser::RuleInsert_block; -} - -void PrismParser::Insert_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterInsert_block(this); -} - -void PrismParser::Insert_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitInsert_block(this); -} - - -std::any PrismParser::Insert_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitInsert_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Insert_blockContext* PrismParser::insert_block() { - Insert_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 78, PrismParser::RuleInsert_block); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(467); - match(PrismParser::INSERT_BLOCK); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Shader_pathContext ------------------------------------------------------------------ - -PrismParser::Shader_pathContext::Shader_pathContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Shader_pathContext::STRING() { - return getToken(PrismParser::STRING, 0); -} - -tree::TerminalNode* PrismParser::Shader_pathContext::ID() { - return getToken(PrismParser::ID, 0); -} - - -size_t PrismParser::Shader_pathContext::getRuleIndex() const { - return PrismParser::RuleShader_path; -} - -void PrismParser::Shader_pathContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterShader_path(this); -} - -void PrismParser::Shader_pathContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitShader_path(this); -} - - -std::any PrismParser::Shader_pathContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitShader_path(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Shader_pathContext* PrismParser::shader_path() { - Shader_pathContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 80, PrismParser::RuleShader_path); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(469); - _la = _input->LA(1); - if (!(_la == PrismParser::ID - - || _la == PrismParser::STRING)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- InheritContext ------------------------------------------------------------------ - -PrismParser::InheritContext::InheritContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::InheritContext::COLON() { - return getToken(PrismParser::COLON, 0); -} - -std::vector PrismParser::InheritContext::inherit_id() { - return getRuleContexts(); -} - -PrismParser::Inherit_idContext* PrismParser::InheritContext::inherit_id(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::InheritContext::getRuleIndex() const { - return PrismParser::RuleInherit; -} - -void PrismParser::InheritContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterInherit(this); -} - -void PrismParser::InheritContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitInherit(this); -} - - -std::any PrismParser::InheritContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitInherit(this); - else - return visitor->visitChildren(this); -} - -PrismParser::InheritContext* PrismParser::inherit() { - InheritContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 82, PrismParser::RuleInherit); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(471); - match(PrismParser::COLON); - setState(472); - inherit_id(); - setState(477); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 29, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(473); - match(PrismParser::T__2); - setState(474); - inherit_id(); - } - setState(479); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 29, _ctx); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Layout_statContext ------------------------------------------------------------------ - -PrismParser::Layout_statContext::Layout_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Slot_declarationContext* PrismParser::Layout_statContext::slot_declaration() { - return getRuleContext(0); -} - -PrismParser::Sampler_declarationContext* PrismParser::Layout_statContext::sampler_declaration() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Layout_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Layout_statContext::getRuleIndex() const { - return PrismParser::RuleLayout_stat; -} - -void PrismParser::Layout_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterLayout_stat(this); -} - -void PrismParser::Layout_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitLayout_stat(this); -} - - -std::any PrismParser::Layout_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitLayout_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Layout_statContext* PrismParser::layout_stat() { - Layout_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 84, PrismParser::RuleLayout_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(483); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::SLOT: { - enterOuterAlt(_localctx, 1); - setState(480); - slot_declaration(); - break; - } - - case PrismParser::T__3: { - enterOuterAlt(_localctx, 2); - setState(481); - sampler_declaration(); - break; - } - - case PrismParser::COMMENT: { - enterOuterAlt(_localctx, 3); - setState(482); - match(PrismParser::COMMENT); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Layout_blockContext ------------------------------------------------------------------ - -PrismParser::Layout_blockContext::Layout_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Layout_blockContext::layout_stat() { - return getRuleContexts(); -} - -PrismParser::Layout_statContext* PrismParser::Layout_blockContext::layout_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Layout_blockContext::getRuleIndex() const { - return PrismParser::RuleLayout_block; -} - -void PrismParser::Layout_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterLayout_block(this); -} - -void PrismParser::Layout_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitLayout_block(this); -} - - -std::any PrismParser::Layout_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitLayout_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Layout_blockContext* PrismParser::layout_block() { - Layout_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 86, PrismParser::RuleLayout_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(488); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::T__3 || _la == PrismParser::SLOT - - || _la == PrismParser::COMMENT) { - setState(485); - layout_stat(); - setState(490); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Layout_definitionContext ------------------------------------------------------------------ - -PrismParser::Layout_definitionContext::Layout_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Layout_definitionContext::LAYOUT() { - return getToken(PrismParser::LAYOUT, 0); -} - -PrismParser::Name_idContext* PrismParser::Layout_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Layout_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Layout_blockContext* PrismParser::Layout_definitionContext::layout_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Layout_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -PrismParser::InheritContext* PrismParser::Layout_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Layout_definitionContext::getRuleIndex() const { - return PrismParser::RuleLayout_definition; -} - -void PrismParser::Layout_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterLayout_definition(this); -} - -void PrismParser::Layout_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitLayout_definition(this); -} - - -std::any PrismParser::Layout_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitLayout_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Layout_definitionContext* PrismParser::layout_definition() { - Layout_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 88, PrismParser::RuleLayout_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(491); - match(PrismParser::LAYOUT); - setState(492); - name_id(); - setState(494); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(493); - inherit(); - } - setState(496); - match(PrismParser::OBRACE); - setState(497); - layout_block(); - setState(498); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Table_statContext ------------------------------------------------------------------ - -PrismParser::Table_statContext::Table_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Value_declarationContext* PrismParser::Table_statContext::value_declaration() { - return getRuleContext(0); -} - -PrismParser::Function_definitionContext* PrismParser::Table_statContext::function_definition() { - return getRuleContext(0); -} - -PrismParser::Insert_blockContext* PrismParser::Table_statContext::insert_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Table_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Table_statContext::getRuleIndex() const { - return PrismParser::RuleTable_stat; -} - -void PrismParser::Table_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterTable_stat(this); -} - -void PrismParser::Table_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitTable_stat(this); -} - - -std::any PrismParser::Table_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitTable_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Table_statContext* PrismParser::table_stat() { - Table_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 90, PrismParser::RuleTable_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(504); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 33, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(500); - value_declaration(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(501); - function_definition(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(502); - insert_block(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(503); - match(PrismParser::COMMENT); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Function_definitionContext ------------------------------------------------------------------ - -PrismParser::Function_definitionContext::Function_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Type_idContext* PrismParser::Function_definitionContext::type_id() { - return getRuleContext(0); -} - -PrismParser::Name_idContext* PrismParser::Function_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Function_definitionContext::OPAR() { - return getToken(PrismParser::OPAR, 0); -} - -PrismParser::Function_paramsContext* PrismParser::Function_definitionContext::function_params() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Function_definitionContext::CPAR() { - return getToken(PrismParser::CPAR, 0); -} - -tree::TerminalNode* PrismParser::Function_definitionContext::FUNC_BODY() { - return getToken(PrismParser::FUNC_BODY, 0); -} - -std::vector PrismParser::Function_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Function_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::Function_semanticContext* PrismParser::Function_definitionContext::function_semantic() { - return getRuleContext(0); -} - - -size_t PrismParser::Function_definitionContext::getRuleIndex() const { - return PrismParser::RuleFunction_definition; -} - -void PrismParser::Function_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFunction_definition(this); -} - -void PrismParser::Function_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFunction_definition(this); -} - - -std::any PrismParser::Function_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFunction_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Function_definitionContext* PrismParser::function_definition() { - Function_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 92, PrismParser::RuleFunction_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(509); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 34, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(506); - option_block(); - } - setState(511); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 34, _ctx); - } - setState(512); - type_id(); - setState(513); - name_id(); - setState(514); - match(PrismParser::OPAR); - setState(515); - function_params(); - setState(516); - match(PrismParser::CPAR); - setState(518); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(517); - function_semantic(); - } - setState(520); - match(PrismParser::FUNC_BODY); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Function_paramsContext ------------------------------------------------------------------ - -PrismParser::Function_paramsContext::Function_paramsContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Function_paramsContext::OPAR() { - return getTokens(PrismParser::OPAR); -} - -tree::TerminalNode* PrismParser::Function_paramsContext::OPAR(size_t i) { - return getToken(PrismParser::OPAR, i); -} - -std::vector PrismParser::Function_paramsContext::function_params() { - return getRuleContexts(); -} - -PrismParser::Function_paramsContext* PrismParser::Function_paramsContext::function_params(size_t i) { - return getRuleContext(i); -} - -std::vector PrismParser::Function_paramsContext::CPAR() { - return getTokens(PrismParser::CPAR); -} - -tree::TerminalNode* PrismParser::Function_paramsContext::CPAR(size_t i) { - return getToken(PrismParser::CPAR, i); -} - - -size_t PrismParser::Function_paramsContext::getRuleIndex() const { - return PrismParser::RuleFunction_params; -} - -void PrismParser::Function_paramsContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFunction_params(this); -} - -void PrismParser::Function_paramsContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFunction_params(this); -} - - -std::any PrismParser::Function_paramsContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFunction_params(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Function_paramsContext* PrismParser::function_params() { - Function_paramsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 94, PrismParser::RuleFunction_params); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(529); - _errHandler->sync(this); - _la = _input->LA(1); - while (((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & -2) != 0 || (((_la - 64) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 64)) & 2199023255549) != 0) { - setState(527); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::OPAR: { - setState(522); - match(PrismParser::OPAR); - setState(523); - function_params(); - setState(524); - match(PrismParser::CPAR); - break; - } - - case PrismParser::T__0: - case PrismParser::T__1: - case PrismParser::T__2: - case PrismParser::T__3: - case PrismParser::T__4: - case PrismParser::T__5: - case PrismParser::T__6: - case PrismParser::T__7: - case PrismParser::T__8: - case PrismParser::T__9: - case PrismParser::T__10: - case PrismParser::T__11: - case PrismParser::T__12: - case PrismParser::T__13: - case PrismParser::T__14: - case PrismParser::T__15: - case PrismParser::T__16: - case PrismParser::T__17: - case PrismParser::T__18: - case PrismParser::T__19: - case PrismParser::T__20: - case PrismParser::T__21: - case PrismParser::T__22: - case PrismParser::T__23: - case PrismParser::T__24: - case PrismParser::T__25: - case PrismParser::T__26: - case PrismParser::T__27: - case PrismParser::T__28: - case PrismParser::T__29: - case PrismParser::T__30: - case PrismParser::T__31: - case PrismParser::T__32: - case PrismParser::T__33: - case PrismParser::T__34: - case PrismParser::T__35: - case PrismParser::T__36: - case PrismParser::T__37: - case PrismParser::T__38: - case PrismParser::T__39: - case PrismParser::T__40: - case PrismParser::T__41: - case PrismParser::T__42: - case PrismParser::T__43: - case PrismParser::OR: - case PrismParser::AND: - case PrismParser::PIPE: - case PrismParser::EQ: - case PrismParser::NEQ: - case PrismParser::GT: - case PrismParser::LT: - case PrismParser::GTEQ: - case PrismParser::LTEQ: - case PrismParser::PLUS: - case PrismParser::MINUS: - case PrismParser::DIV: - case PrismParser::MOD: - case PrismParser::POW: - case PrismParser::NOT: - case PrismParser::SCOL: - case PrismParser::COLON: - case PrismParser::DOT: - case PrismParser::ASSIGN: - case PrismParser::OBRACE: - case PrismParser::CBRACE: - case PrismParser::OSBRACE: - case PrismParser::CSBRACE: - case PrismParser::TRUE: - case PrismParser::FALSE: - case PrismParser::LOG: - case PrismParser::LAYOUT: - case PrismParser::STRUCT: - case PrismParser::NAMESPACE: - case PrismParser::COMPUTE_PSO: - case PrismParser::GRAPHICS_PSO: - case PrismParser::RAYTRACE_PSO: - case PrismParser::WORKGRAPH_PSO: - case PrismParser::NODE: - case PrismParser::NODE_OUTPUT: - case PrismParser::RAYTRACE_RAYGEN: - case PrismParser::RAYTRACE_PASS: - case PrismParser::PASS: - case PrismParser::VIEW: - case PrismParser::PIPELINE: - case PrismParser::SLOT: - case PrismParser::RT: - case PrismParser::RTV: - case PrismParser::DSV: - case PrismParser::ROOTSIG: - case PrismParser::ENUM: - case PrismParser::ID: - case PrismParser::INT_SCALAR: - case PrismParser::FLOAT_SCALAR: - case PrismParser::STRING: - case PrismParser::RAWEXPR: - case PrismParser::COMMENT: - case PrismParser::SPACE: - case PrismParser::POINTER: - case PrismParser::FUNC_BODY: - case PrismParser::INSERT_START: - case PrismParser::INSERT_END: - case PrismParser::INSERT_BLOCK: { - setState(526); - _la = _input->LA(1); - if (_la == 0 || _la == Token::EOF || (_la == PrismParser::OPAR - - || _la == PrismParser::CPAR)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - break; - } - - default: - throw NoViableAltException(this); - } - setState(531); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Function_semanticContext ------------------------------------------------------------------ - -PrismParser::Function_semanticContext::Function_semanticContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Function_semanticContext::COLON() { - return getToken(PrismParser::COLON, 0); -} - -tree::TerminalNode* PrismParser::Function_semanticContext::ID() { - return getToken(PrismParser::ID, 0); -} - - -size_t PrismParser::Function_semanticContext::getRuleIndex() const { - return PrismParser::RuleFunction_semantic; -} - -void PrismParser::Function_semanticContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterFunction_semantic(this); -} - -void PrismParser::Function_semanticContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitFunction_semantic(this); -} - - -std::any PrismParser::Function_semanticContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitFunction_semantic(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Function_semanticContext* PrismParser::function_semantic() { - Function_semanticContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 96, PrismParser::RuleFunction_semantic); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(532); - match(PrismParser::COLON); - setState(533); - match(PrismParser::ID); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Table_blockContext ------------------------------------------------------------------ - -PrismParser::Table_blockContext::Table_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Table_blockContext::table_stat() { - return getRuleContexts(); -} - -PrismParser::Table_statContext* PrismParser::Table_blockContext::table_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Table_blockContext::getRuleIndex() const { - return PrismParser::RuleTable_block; -} - -void PrismParser::Table_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterTable_block(this); -} - -void PrismParser::Table_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitTable_block(this); -} - - -std::any PrismParser::Table_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitTable_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Table_blockContext* PrismParser::table_block() { - Table_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 98, PrismParser::RuleTable_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(538); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 69826772993) != 0) { - setState(535); - table_stat(); - setState(540); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Table_definitionContext ------------------------------------------------------------------ - -PrismParser::Table_definitionContext::Table_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Table_definitionContext::STRUCT() { - return getToken(PrismParser::STRUCT, 0); -} - -PrismParser::Name_idContext* PrismParser::Table_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Table_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Table_blockContext* PrismParser::Table_definitionContext::table_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Table_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::Table_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Table_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::InheritContext* PrismParser::Table_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Table_definitionContext::getRuleIndex() const { - return PrismParser::RuleTable_definition; -} - -void PrismParser::Table_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterTable_definition(this); -} - -void PrismParser::Table_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitTable_definition(this); -} - - -std::any PrismParser::Table_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitTable_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Table_definitionContext* PrismParser::table_definition() { - Table_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 100, PrismParser::RuleTable_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(544); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 39, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(541); - option_block(); - } - setState(546); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 39, _ctx); - } - setState(547); - match(PrismParser::STRUCT); - setState(548); - name_id(); - setState(550); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(549); - inherit(); - } - setState(552); - match(PrismParser::OBRACE); - setState(553); - table_block(); - setState(554); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rt_color_declarationContext ------------------------------------------------------------------ - -PrismParser::Rt_color_declarationContext::Rt_color_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Type_idContext* PrismParser::Rt_color_declarationContext::type_id() { - return getRuleContext(0); -} - -PrismParser::Name_idContext* PrismParser::Rt_color_declarationContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rt_color_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - - -size_t PrismParser::Rt_color_declarationContext::getRuleIndex() const { - return PrismParser::RuleRt_color_declaration; -} - -void PrismParser::Rt_color_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRt_color_declaration(this); -} - -void PrismParser::Rt_color_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRt_color_declaration(this); -} - - -std::any PrismParser::Rt_color_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRt_color_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rt_color_declarationContext* PrismParser::rt_color_declaration() { - Rt_color_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 102, PrismParser::RuleRt_color_declaration); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(556); - type_id(); - setState(557); - name_id(); - setState(558); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rt_ds_declarationContext ------------------------------------------------------------------ - -PrismParser::Rt_ds_declarationContext::Rt_ds_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Rt_ds_declarationContext::DSV() { - return getToken(PrismParser::DSV, 0); -} - -PrismParser::Name_idContext* PrismParser::Rt_ds_declarationContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rt_ds_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - - -size_t PrismParser::Rt_ds_declarationContext::getRuleIndex() const { - return PrismParser::RuleRt_ds_declaration; -} - -void PrismParser::Rt_ds_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRt_ds_declaration(this); -} - -void PrismParser::Rt_ds_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRt_ds_declaration(this); -} - - -std::any PrismParser::Rt_ds_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRt_ds_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rt_ds_declarationContext* PrismParser::rt_ds_declaration() { - Rt_ds_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 104, PrismParser::RuleRt_ds_declaration); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(560); - match(PrismParser::DSV); - setState(561); - name_id(); - setState(562); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rt_statContext ------------------------------------------------------------------ - -PrismParser::Rt_statContext::Rt_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Rt_color_declarationContext* PrismParser::Rt_statContext::rt_color_declaration() { - return getRuleContext(0); -} - -PrismParser::Rt_ds_declarationContext* PrismParser::Rt_statContext::rt_ds_declaration() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rt_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Rt_statContext::getRuleIndex() const { - return PrismParser::RuleRt_stat; -} - -void PrismParser::Rt_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRt_stat(this); -} - -void PrismParser::Rt_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRt_stat(this); -} - - -std::any PrismParser::Rt_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRt_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rt_statContext* PrismParser::rt_stat() { - Rt_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 106, PrismParser::RuleRt_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(567); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::ID: { - enterOuterAlt(_localctx, 1); - setState(564); - rt_color_declaration(); - break; - } - - case PrismParser::DSV: { - enterOuterAlt(_localctx, 2); - setState(565); - rt_ds_declaration(); - break; - } - - case PrismParser::COMMENT: { - enterOuterAlt(_localctx, 3); - setState(566); - match(PrismParser::COMMENT); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rt_blockContext ------------------------------------------------------------------ - -PrismParser::Rt_blockContext::Rt_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Rt_blockContext::rt_stat() { - return getRuleContexts(); -} - -PrismParser::Rt_statContext* PrismParser::Rt_blockContext::rt_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Rt_blockContext::getRuleIndex() const { - return PrismParser::RuleRt_block; -} - -void PrismParser::Rt_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRt_block(this); -} - -void PrismParser::Rt_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRt_block(this); -} - - -std::any PrismParser::Rt_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRt_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rt_blockContext* PrismParser::rt_block() { - Rt_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 108, PrismParser::RuleRt_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(572); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la - 90) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 90)) & 265) != 0) { - setState(569); - rt_stat(); - setState(574); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rt_definitionContext ------------------------------------------------------------------ - -PrismParser::Rt_definitionContext::Rt_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Rt_definitionContext::RT() { - return getToken(PrismParser::RT, 0); -} - -PrismParser::Name_idContext* PrismParser::Rt_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rt_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Rt_blockContext* PrismParser::Rt_definitionContext::rt_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rt_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - - -size_t PrismParser::Rt_definitionContext::getRuleIndex() const { - return PrismParser::RuleRt_definition; -} - -void PrismParser::Rt_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRt_definition(this); -} - -void PrismParser::Rt_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRt_definition(this); -} - - -std::any PrismParser::Rt_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRt_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rt_definitionContext* PrismParser::rt_definition() { - Rt_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 110, PrismParser::RuleRt_definition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(575); - match(PrismParser::RT); - setState(576); - name_id(); - setState(577); - match(PrismParser::OBRACE); - setState(578); - rt_block(); - setState(579); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Array_value_holderContext ------------------------------------------------------------------ - -PrismParser::Array_value_holderContext::Array_value_holderContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Value_idContext* PrismParser::Array_value_holderContext::value_id() { - return getRuleContext(0); -} - - -size_t PrismParser::Array_value_holderContext::getRuleIndex() const { - return PrismParser::RuleArray_value_holder; -} - -void PrismParser::Array_value_holderContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterArray_value_holder(this); -} - -void PrismParser::Array_value_holderContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitArray_value_holder(this); -} - - -std::any PrismParser::Array_value_holderContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitArray_value_holder(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Array_value_holderContext* PrismParser::array_value_holder() { - Array_value_holderContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 112, PrismParser::RuleArray_value_holder); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(581); - value_id(); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Array_value_idsContext ------------------------------------------------------------------ - -PrismParser::Array_value_idsContext::Array_value_idsContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Array_value_idsContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -std::vector PrismParser::Array_value_idsContext::array_value_holder() { - return getRuleContexts(); -} - -PrismParser::Array_value_holderContext* PrismParser::Array_value_idsContext::array_value_holder(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* PrismParser::Array_value_idsContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - - -size_t PrismParser::Array_value_idsContext::getRuleIndex() const { - return PrismParser::RuleArray_value_ids; -} - -void PrismParser::Array_value_idsContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterArray_value_ids(this); -} - -void PrismParser::Array_value_idsContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitArray_value_ids(this); -} - - -std::any PrismParser::Array_value_idsContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitArray_value_ids(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Array_value_idsContext* PrismParser::array_value_ids() { - Array_value_idsContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 114, PrismParser::RuleArray_value_ids); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(583); - match(PrismParser::OBRACE); - setState(584); - array_value_holder(); - setState(589); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::T__2) { - setState(585); - match(PrismParser::T__2); - setState(586); - array_value_holder(); - setState(591); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(592); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Root_sigContext ------------------------------------------------------------------ - -PrismParser::Root_sigContext::Root_sigContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Root_sigContext::ROOTSIG() { - return getToken(PrismParser::ROOTSIG, 0); -} - -tree::TerminalNode* PrismParser::Root_sigContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Name_idContext* PrismParser::Root_sigContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Root_sigContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - - -size_t PrismParser::Root_sigContext::getRuleIndex() const { - return PrismParser::RuleRoot_sig; -} - -void PrismParser::Root_sigContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRoot_sig(this); -} - -void PrismParser::Root_sigContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRoot_sig(this); -} - - -std::any PrismParser::Root_sigContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRoot_sig(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Root_sigContext* PrismParser::root_sig() { - Root_sigContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 116, PrismParser::RuleRoot_sig); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(594); - match(PrismParser::ROOTSIG); - setState(595); - match(PrismParser::ASSIGN); - setState(596); - name_id(); - setState(597); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- ShaderContext ------------------------------------------------------------------ - -PrismParser::ShaderContext::ShaderContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Shader_typeContext* PrismParser::ShaderContext::shader_type() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::ShaderContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Shader_pathContext* PrismParser::ShaderContext::shader_path() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::ShaderContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::ShaderContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::ShaderContext::option_block(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::ShaderContext::getRuleIndex() const { - return PrismParser::RuleShader; -} - -void PrismParser::ShaderContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterShader(this); -} - -void PrismParser::ShaderContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitShader(this); -} - - -std::any PrismParser::ShaderContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitShader(this); - else - return visitor->visitChildren(this); -} - -PrismParser::ShaderContext* PrismParser::shader() { - ShaderContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 118, PrismParser::RuleShader); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(602); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 44, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(599); - option_block(); - } - setState(604); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 44, _ctx); - } - setState(605); - shader_type(); - setState(606); - match(PrismParser::ASSIGN); - setState(607); - shader_path(); - setState(608); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Compute_pso_statContext ------------------------------------------------------------------ - -PrismParser::Compute_pso_statContext::Compute_pso_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Root_sigContext* PrismParser::Compute_pso_statContext::root_sig() { - return getRuleContext(0); -} - -PrismParser::ShaderContext* PrismParser::Compute_pso_statContext::shader() { - return getRuleContext(0); -} - -PrismParser::Define_declarationContext* PrismParser::Compute_pso_statContext::define_declaration() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Compute_pso_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Compute_pso_statContext::getRuleIndex() const { - return PrismParser::RuleCompute_pso_stat; -} - -void PrismParser::Compute_pso_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCompute_pso_stat(this); -} - -void PrismParser::Compute_pso_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCompute_pso_stat(this); -} - - -std::any PrismParser::Compute_pso_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCompute_pso_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Compute_pso_statContext* PrismParser::compute_pso_stat() { - Compute_pso_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 120, PrismParser::RuleCompute_pso_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(614); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 45, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(610); - root_sig(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(611); - shader(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(612); - define_declaration(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(613); - match(PrismParser::COMMENT); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Compute_pso_blockContext ------------------------------------------------------------------ - -PrismParser::Compute_pso_blockContext::Compute_pso_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Compute_pso_blockContext::compute_pso_stat() { - return getRuleContexts(); -} - -PrismParser::Compute_pso_statContext* PrismParser::Compute_pso_blockContext::compute_pso_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Compute_pso_blockContext::getRuleIndex() const { - return PrismParser::RuleCompute_pso_block; -} - -void PrismParser::Compute_pso_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCompute_pso_block(this); -} - -void PrismParser::Compute_pso_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCompute_pso_block(this); -} - - -std::any PrismParser::Compute_pso_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCompute_pso_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Compute_pso_blockContext* PrismParser::compute_pso_block() { - Compute_pso_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 122, PrismParser::RuleCompute_pso_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(619); - _errHandler->sync(this); - _la = _input->LA(1); - while (((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 67100704) != 0 || (((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 1082130433) != 0) { - setState(616); - compute_pso_stat(); - setState(621); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Compute_pso_definitionContext ------------------------------------------------------------------ - -PrismParser::Compute_pso_definitionContext::Compute_pso_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Compute_pso_definitionContext::COMPUTE_PSO() { - return getToken(PrismParser::COMPUTE_PSO, 0); -} - -PrismParser::Name_idContext* PrismParser::Compute_pso_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Compute_pso_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Compute_pso_blockContext* PrismParser::Compute_pso_definitionContext::compute_pso_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Compute_pso_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::Compute_pso_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Compute_pso_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::InheritContext* PrismParser::Compute_pso_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Compute_pso_definitionContext::getRuleIndex() const { - return PrismParser::RuleCompute_pso_definition; -} - -void PrismParser::Compute_pso_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterCompute_pso_definition(this); -} - -void PrismParser::Compute_pso_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitCompute_pso_definition(this); -} - - -std::any PrismParser::Compute_pso_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitCompute_pso_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Compute_pso_definitionContext* PrismParser::compute_pso_definition() { - Compute_pso_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 124, PrismParser::RuleCompute_pso_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(625); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 47, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(622); - option_block(); - } - setState(627); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 47, _ctx); - } - setState(628); - match(PrismParser::COMPUTE_PSO); - setState(629); - name_id(); - setState(631); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(630); - inherit(); - } - setState(633); - match(PrismParser::OBRACE); - setState(634); - compute_pso_block(); - setState(635); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Graphics_pso_statContext ------------------------------------------------------------------ - -PrismParser::Graphics_pso_statContext::Graphics_pso_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Root_sigContext* PrismParser::Graphics_pso_statContext::root_sig() { - return getRuleContext(0); -} - -PrismParser::ShaderContext* PrismParser::Graphics_pso_statContext::shader() { - return getRuleContext(0); -} - -PrismParser::Define_declarationContext* PrismParser::Graphics_pso_statContext::define_declaration() { - return getRuleContext(0); -} - -PrismParser::Rtv_formats_declarationContext* PrismParser::Graphics_pso_statContext::rtv_formats_declaration() { - return getRuleContext(0); -} - -PrismParser::Blends_declarationContext* PrismParser::Graphics_pso_statContext::blends_declaration() { - return getRuleContext(0); -} - -PrismParser::Pso_paramContext* PrismParser::Graphics_pso_statContext::pso_param() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Graphics_pso_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Graphics_pso_statContext::getRuleIndex() const { - return PrismParser::RuleGraphics_pso_stat; -} - -void PrismParser::Graphics_pso_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGraphics_pso_stat(this); -} - -void PrismParser::Graphics_pso_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGraphics_pso_stat(this); -} - - -std::any PrismParser::Graphics_pso_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGraphics_pso_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Graphics_pso_statContext* PrismParser::graphics_pso_stat() { - Graphics_pso_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 126, PrismParser::RuleGraphics_pso_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(644); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 49, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(637); - root_sig(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(638); - shader(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(639); - define_declaration(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(640); - rtv_formats_declaration(); - break; - } - - case 5: { - enterOuterAlt(_localctx, 5); - setState(641); - blends_declaration(); - break; - } - - case 6: { - enterOuterAlt(_localctx, 6); - setState(642); - pso_param(); - break; - } - - case 7: { - enterOuterAlt(_localctx, 7); - setState(643); - match(PrismParser::COMMENT); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Graphics_pso_blockContext ------------------------------------------------------------------ - -PrismParser::Graphics_pso_blockContext::Graphics_pso_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Graphics_pso_blockContext::graphics_pso_stat() { - return getRuleContexts(); -} - -PrismParser::Graphics_pso_statContext* PrismParser::Graphics_pso_blockContext::graphics_pso_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Graphics_pso_blockContext::getRuleIndex() const { - return PrismParser::RuleGraphics_pso_block; -} - -void PrismParser::Graphics_pso_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGraphics_pso_block(this); -} - -void PrismParser::Graphics_pso_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGraphics_pso_block(this); -} - - -std::any PrismParser::Graphics_pso_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGraphics_pso_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Graphics_pso_blockContext* PrismParser::graphics_pso_block() { - Graphics_pso_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 128, PrismParser::RuleGraphics_pso_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(649); - _errHandler->sync(this); - _la = _input->LA(1); - while (((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 35184372080864) != 0 || (((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 1082130433) != 0) { - setState(646); - graphics_pso_stat(); - setState(651); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Graphics_pso_definitionContext ------------------------------------------------------------------ - -PrismParser::Graphics_pso_definitionContext::Graphics_pso_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Graphics_pso_definitionContext::GRAPHICS_PSO() { - return getToken(PrismParser::GRAPHICS_PSO, 0); -} - -PrismParser::Name_idContext* PrismParser::Graphics_pso_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Graphics_pso_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Graphics_pso_blockContext* PrismParser::Graphics_pso_definitionContext::graphics_pso_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Graphics_pso_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::Graphics_pso_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Graphics_pso_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::InheritContext* PrismParser::Graphics_pso_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Graphics_pso_definitionContext::getRuleIndex() const { - return PrismParser::RuleGraphics_pso_definition; -} - -void PrismParser::Graphics_pso_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterGraphics_pso_definition(this); -} - -void PrismParser::Graphics_pso_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitGraphics_pso_definition(this); -} - - -std::any PrismParser::Graphics_pso_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitGraphics_pso_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Graphics_pso_definitionContext* PrismParser::graphics_pso_definition() { - Graphics_pso_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 130, PrismParser::RuleGraphics_pso_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(655); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 51, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(652); - option_block(); - } - setState(657); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 51, _ctx); - } - setState(658); - match(PrismParser::GRAPHICS_PSO); - setState(659); - name_id(); - setState(661); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(660); - inherit(); - } - setState(663); - match(PrismParser::OBRACE); - setState(664); - graphics_pso_block(); - setState(665); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_pso_statContext ------------------------------------------------------------------ - -PrismParser::Rtx_pso_statContext::Rtx_pso_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Root_sigContext* PrismParser::Rtx_pso_statContext::root_sig() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_pso_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Rtx_pso_statContext::getRuleIndex() const { - return PrismParser::RuleRtx_pso_stat; -} - -void PrismParser::Rtx_pso_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_pso_stat(this); -} - -void PrismParser::Rtx_pso_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_pso_stat(this); -} - - -std::any PrismParser::Rtx_pso_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_pso_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_pso_statContext* PrismParser::rtx_pso_stat() { - Rtx_pso_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 132, PrismParser::RuleRtx_pso_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(669); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::ROOTSIG: { - enterOuterAlt(_localctx, 1); - setState(667); - root_sig(); - break; - } - - case PrismParser::COMMENT: { - enterOuterAlt(_localctx, 2); - setState(668); - match(PrismParser::COMMENT); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_pso_blockContext ------------------------------------------------------------------ - -PrismParser::Rtx_pso_blockContext::Rtx_pso_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Rtx_pso_blockContext::rtx_pso_stat() { - return getRuleContexts(); -} - -PrismParser::Rtx_pso_statContext* PrismParser::Rtx_pso_blockContext::rtx_pso_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Rtx_pso_blockContext::getRuleIndex() const { - return PrismParser::RuleRtx_pso_block; -} - -void PrismParser::Rtx_pso_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_pso_block(this); -} - -void PrismParser::Rtx_pso_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_pso_block(this); -} - - -std::any PrismParser::Rtx_pso_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_pso_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_pso_blockContext* PrismParser::rtx_pso_block() { - Rtx_pso_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 134, PrismParser::RuleRtx_pso_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(674); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::ROOTSIG - - || _la == PrismParser::COMMENT) { - setState(671); - rtx_pso_stat(); - setState(676); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_pso_definitionContext ------------------------------------------------------------------ - -PrismParser::Rtx_pso_definitionContext::Rtx_pso_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Rtx_pso_definitionContext::RAYTRACE_PSO() { - return getToken(PrismParser::RAYTRACE_PSO, 0); -} - -PrismParser::Name_idContext* PrismParser::Rtx_pso_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_pso_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Rtx_pso_blockContext* PrismParser::Rtx_pso_definitionContext::rtx_pso_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_pso_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -PrismParser::InheritContext* PrismParser::Rtx_pso_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Rtx_pso_definitionContext::getRuleIndex() const { - return PrismParser::RuleRtx_pso_definition; -} - -void PrismParser::Rtx_pso_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_pso_definition(this); -} - -void PrismParser::Rtx_pso_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_pso_definition(this); -} - - -std::any PrismParser::Rtx_pso_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_pso_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_pso_definitionContext* PrismParser::rtx_pso_definition() { - Rtx_pso_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 136, PrismParser::RuleRtx_pso_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(677); - match(PrismParser::RAYTRACE_PSO); - setState(678); - name_id(); - setState(680); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(679); - inherit(); - } - setState(682); - match(PrismParser::OBRACE); - setState(683); - rtx_pso_block(); - setState(684); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Node_param_idContext ------------------------------------------------------------------ - -PrismParser::Node_param_idContext::Node_param_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t PrismParser::Node_param_idContext::getRuleIndex() const { - return PrismParser::RuleNode_param_id; -} - -void PrismParser::Node_param_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNode_param_id(this); -} - -void PrismParser::Node_param_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNode_param_id(this); -} - - -std::any PrismParser::Node_param_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNode_param_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Node_param_idContext* PrismParser::node_param_id() { - Node_param_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 138, PrismParser::RuleNode_param_id); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(686); - _la = _input->LA(1); - if (!(((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 7936) != 0)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Node_paramContext ------------------------------------------------------------------ - -PrismParser::Node_paramContext::Node_paramContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Node_param_idContext* PrismParser::Node_paramContext::node_param_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Node_paramContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Value_idContext* PrismParser::Node_paramContext::value_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Node_paramContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - - -size_t PrismParser::Node_paramContext::getRuleIndex() const { - return PrismParser::RuleNode_param; -} - -void PrismParser::Node_paramContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNode_param(this); -} - -void PrismParser::Node_paramContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNode_param(this); -} - - -std::any PrismParser::Node_paramContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNode_param(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Node_paramContext* PrismParser::node_param() { - Node_paramContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 140, PrismParser::RuleNode_param); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(688); - node_param_id(); - setState(689); - match(PrismParser::ASSIGN); - setState(690); - value_id(); - setState(691); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Node_output_declContext ------------------------------------------------------------------ - -PrismParser::Node_output_declContext::Node_output_declContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Node_output_declContext::NODE_OUTPUT() { - return getToken(PrismParser::NODE_OUTPUT, 0); -} - -PrismParser::Type_idContext* PrismParser::Node_output_declContext::type_id() { - return getRuleContext(0); -} - -PrismParser::Name_idContext* PrismParser::Node_output_declContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Node_output_declContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::Node_output_declContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Node_output_declContext::option_block(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Node_output_declContext::getRuleIndex() const { - return PrismParser::RuleNode_output_decl; -} - -void PrismParser::Node_output_declContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNode_output_decl(this); -} - -void PrismParser::Node_output_declContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNode_output_decl(this); -} - - -std::any PrismParser::Node_output_declContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNode_output_decl(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Node_output_declContext* PrismParser::node_output_decl() { - Node_output_declContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 142, PrismParser::RuleNode_output_decl); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(696); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 56, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(693); - option_block(); - } - setState(698); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 56, _ctx); - } - setState(699); - match(PrismParser::NODE_OUTPUT); - setState(700); - type_id(); - setState(701); - name_id(); - setState(702); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Node_statContext ------------------------------------------------------------------ - -PrismParser::Node_statContext::Node_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Node_paramContext* PrismParser::Node_statContext::node_param() { - return getRuleContext(0); -} - -PrismParser::Node_output_declContext* PrismParser::Node_statContext::node_output_decl() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Node_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Node_statContext::getRuleIndex() const { - return PrismParser::RuleNode_stat; -} - -void PrismParser::Node_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNode_stat(this); -} - -void PrismParser::Node_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNode_stat(this); -} - - -std::any PrismParser::Node_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNode_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Node_statContext* PrismParser::node_stat() { - Node_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 144, PrismParser::RuleNode_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(707); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::T__7: - case PrismParser::T__8: - case PrismParser::T__9: - case PrismParser::T__10: - case PrismParser::T__11: { - enterOuterAlt(_localctx, 1); - setState(704); - node_param(); - break; - } - - case PrismParser::OSBRACE: - case PrismParser::NODE_OUTPUT: { - enterOuterAlt(_localctx, 2); - setState(705); - node_output_decl(); - break; - } - - case PrismParser::COMMENT: { - enterOuterAlt(_localctx, 3); - setState(706); - match(PrismParser::COMMENT); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Node_blockContext ------------------------------------------------------------------ - -PrismParser::Node_blockContext::Node_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Node_blockContext::node_stat() { - return getRuleContexts(); -} - -PrismParser::Node_statContext* PrismParser::Node_blockContext::node_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Node_blockContext::getRuleIndex() const { - return PrismParser::RuleNode_block; -} - -void PrismParser::Node_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNode_block(this); -} - -void PrismParser::Node_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNode_block(this); -} - - -std::any PrismParser::Node_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNode_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Node_blockContext* PrismParser::node_block() { - Node_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 146, PrismParser::RuleNode_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(712); - _errHandler->sync(this); - _la = _input->LA(1); - while (((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 7936) != 0 || (((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 1073750017) != 0) { - setState(709); - node_stat(); - setState(714); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Node_definitionContext ------------------------------------------------------------------ - -PrismParser::Node_definitionContext::Node_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Node_definitionContext::NODE() { - return getToken(PrismParser::NODE, 0); -} - -PrismParser::Name_idContext* PrismParser::Node_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Node_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Node_blockContext* PrismParser::Node_definitionContext::node_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Node_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - - -size_t PrismParser::Node_definitionContext::getRuleIndex() const { - return PrismParser::RuleNode_definition; -} - -void PrismParser::Node_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterNode_definition(this); -} - -void PrismParser::Node_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitNode_definition(this); -} - - -std::any PrismParser::Node_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitNode_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Node_definitionContext* PrismParser::node_definition() { - Node_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 148, PrismParser::RuleNode_definition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(715); - match(PrismParser::NODE); - setState(716); - name_id(); - setState(717); - match(PrismParser::OBRACE); - setState(718); - node_block(); - setState(719); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Workgraph_pso_statContext ------------------------------------------------------------------ - -PrismParser::Workgraph_pso_statContext::Workgraph_pso_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Root_sigContext* PrismParser::Workgraph_pso_statContext::root_sig() { - return getRuleContext(0); -} - -PrismParser::ShaderContext* PrismParser::Workgraph_pso_statContext::shader() { - return getRuleContext(0); -} - -PrismParser::Define_declarationContext* PrismParser::Workgraph_pso_statContext::define_declaration() { - return getRuleContext(0); -} - -PrismParser::Node_definitionContext* PrismParser::Workgraph_pso_statContext::node_definition() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Workgraph_pso_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Workgraph_pso_statContext::getRuleIndex() const { - return PrismParser::RuleWorkgraph_pso_stat; -} - -void PrismParser::Workgraph_pso_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterWorkgraph_pso_stat(this); -} - -void PrismParser::Workgraph_pso_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitWorkgraph_pso_stat(this); -} - - -std::any PrismParser::Workgraph_pso_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitWorkgraph_pso_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Workgraph_pso_statContext* PrismParser::workgraph_pso_stat() { - Workgraph_pso_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 150, PrismParser::RuleWorkgraph_pso_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(726); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 59, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(721); - root_sig(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(722); - shader(); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(723); - define_declaration(); - break; - } - - case 4: { - enterOuterAlt(_localctx, 4); - setState(724); - node_definition(); - break; - } - - case 5: { - enterOuterAlt(_localctx, 5); - setState(725); - match(PrismParser::COMMENT); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Workgraph_pso_blockContext ------------------------------------------------------------------ - -PrismParser::Workgraph_pso_blockContext::Workgraph_pso_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Workgraph_pso_blockContext::workgraph_pso_stat() { - return getRuleContexts(); -} - -PrismParser::Workgraph_pso_statContext* PrismParser::Workgraph_pso_blockContext::workgraph_pso_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Workgraph_pso_blockContext::getRuleIndex() const { - return PrismParser::RuleWorkgraph_pso_block; -} - -void PrismParser::Workgraph_pso_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterWorkgraph_pso_block(this); -} - -void PrismParser::Workgraph_pso_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitWorkgraph_pso_block(this); -} - - -std::any PrismParser::Workgraph_pso_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitWorkgraph_pso_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Workgraph_pso_blockContext* PrismParser::workgraph_pso_block() { - Workgraph_pso_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 152, PrismParser::RuleWorkgraph_pso_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(731); - _errHandler->sync(this); - _la = _input->LA(1); - while (((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 67100704) != 0 || (((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 1082134529) != 0) { - setState(728); - workgraph_pso_stat(); - setState(733); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Workgraph_pso_definitionContext ------------------------------------------------------------------ - -PrismParser::Workgraph_pso_definitionContext::Workgraph_pso_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Workgraph_pso_definitionContext::WORKGRAPH_PSO() { - return getToken(PrismParser::WORKGRAPH_PSO, 0); -} - -PrismParser::Name_idContext* PrismParser::Workgraph_pso_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Workgraph_pso_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Workgraph_pso_blockContext* PrismParser::Workgraph_pso_definitionContext::workgraph_pso_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Workgraph_pso_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::Workgraph_pso_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Workgraph_pso_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::InheritContext* PrismParser::Workgraph_pso_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Workgraph_pso_definitionContext::getRuleIndex() const { - return PrismParser::RuleWorkgraph_pso_definition; -} - -void PrismParser::Workgraph_pso_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterWorkgraph_pso_definition(this); -} - -void PrismParser::Workgraph_pso_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitWorkgraph_pso_definition(this); -} - - -std::any PrismParser::Workgraph_pso_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitWorkgraph_pso_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Workgraph_pso_definitionContext* PrismParser::workgraph_pso_definition() { - Workgraph_pso_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 154, PrismParser::RuleWorkgraph_pso_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(737); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 61, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(734); - option_block(); - } - setState(739); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 61, _ctx); - } - setState(740); - match(PrismParser::WORKGRAPH_PSO); - setState(741); - name_id(); - setState(743); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(742); - inherit(); - } - setState(745); - match(PrismParser::OBRACE); - setState(746); - workgraph_pso_block(); - setState(747); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_pass_statContext ------------------------------------------------------------------ - -PrismParser::Rtx_pass_statContext::Rtx_pass_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::ShaderContext* PrismParser::Rtx_pass_statContext::shader() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_pass_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - -PrismParser::Pso_paramContext* PrismParser::Rtx_pass_statContext::pso_param() { - return getRuleContext(0); -} - - -size_t PrismParser::Rtx_pass_statContext::getRuleIndex() const { - return PrismParser::RuleRtx_pass_stat; -} - -void PrismParser::Rtx_pass_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_pass_stat(this); -} - -void PrismParser::Rtx_pass_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_pass_stat(this); -} - - -std::any PrismParser::Rtx_pass_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_pass_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_pass_statContext* PrismParser::rtx_pass_stat() { - Rtx_pass_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 156, PrismParser::RuleRtx_pass_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(752); - _errHandler->sync(this); - switch (getInterpreter()->adaptivePredict(_input, 63, _ctx)) { - case 1: { - enterOuterAlt(_localctx, 1); - setState(749); - shader(); - break; - } - - case 2: { - enterOuterAlt(_localctx, 2); - setState(750); - match(PrismParser::COMMENT); - break; - } - - case 3: { - enterOuterAlt(_localctx, 3); - setState(751); - pso_param(); - break; - } - - default: - break; - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_pass_blockContext ------------------------------------------------------------------ - -PrismParser::Rtx_pass_blockContext::Rtx_pass_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Rtx_pass_blockContext::rtx_pass_stat() { - return getRuleContexts(); -} - -PrismParser::Rtx_pass_statContext* PrismParser::Rtx_pass_blockContext::rtx_pass_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Rtx_pass_blockContext::getRuleIndex() const { - return PrismParser::RuleRtx_pass_block; -} - -void PrismParser::Rtx_pass_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_pass_block(this); -} - -void PrismParser::Rtx_pass_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_pass_block(this); -} - - -std::any PrismParser::Rtx_pass_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_pass_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_pass_blockContext* PrismParser::rtx_pass_block() { - Rtx_pass_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 158, PrismParser::RuleRtx_pass_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(757); - _errHandler->sync(this); - _la = _input->LA(1); - while (((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 35184372080640) != 0 || _la == PrismParser::OSBRACE - - || _la == PrismParser::COMMENT) { - setState(754); - rtx_pass_stat(); - setState(759); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_pass_definitionContext ------------------------------------------------------------------ - -PrismParser::Rtx_pass_definitionContext::Rtx_pass_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Rtx_pass_definitionContext::RAYTRACE_PASS() { - return getToken(PrismParser::RAYTRACE_PASS, 0); -} - -PrismParser::Name_idContext* PrismParser::Rtx_pass_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_pass_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Rtx_pass_blockContext* PrismParser::Rtx_pass_definitionContext::rtx_pass_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_pass_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::Rtx_pass_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Rtx_pass_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::InheritContext* PrismParser::Rtx_pass_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Rtx_pass_definitionContext::getRuleIndex() const { - return PrismParser::RuleRtx_pass_definition; -} - -void PrismParser::Rtx_pass_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_pass_definition(this); -} - -void PrismParser::Rtx_pass_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_pass_definition(this); -} - - -std::any PrismParser::Rtx_pass_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_pass_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_pass_definitionContext* PrismParser::rtx_pass_definition() { - Rtx_pass_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 160, PrismParser::RuleRtx_pass_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(763); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 65, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(760); - option_block(); - } - setState(765); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 65, _ctx); - } - setState(766); - match(PrismParser::RAYTRACE_PASS); - setState(767); - name_id(); - setState(769); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(768); - inherit(); - } - setState(771); - match(PrismParser::OBRACE); - setState(772); - rtx_pass_block(); - setState(773); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_raygen_statContext ------------------------------------------------------------------ - -PrismParser::Rtx_raygen_statContext::Rtx_raygen_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::ShaderContext* PrismParser::Rtx_raygen_statContext::shader() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_raygen_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Rtx_raygen_statContext::getRuleIndex() const { - return PrismParser::RuleRtx_raygen_stat; -} - -void PrismParser::Rtx_raygen_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_raygen_stat(this); -} - -void PrismParser::Rtx_raygen_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_raygen_stat(this); -} - - -std::any PrismParser::Rtx_raygen_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_raygen_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_raygen_statContext* PrismParser::rtx_raygen_stat() { - Rtx_raygen_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 162, PrismParser::RuleRtx_raygen_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(777); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::T__12: - case PrismParser::T__13: - case PrismParser::T__14: - case PrismParser::T__15: - case PrismParser::T__16: - case PrismParser::T__17: - case PrismParser::T__18: - case PrismParser::T__19: - case PrismParser::T__20: - case PrismParser::T__21: - case PrismParser::T__22: - case PrismParser::T__23: - case PrismParser::T__24: - case PrismParser::OSBRACE: { - enterOuterAlt(_localctx, 1); - setState(775); - shader(); - break; - } - - case PrismParser::COMMENT: { - enterOuterAlt(_localctx, 2); - setState(776); - match(PrismParser::COMMENT); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_raygen_blockContext ------------------------------------------------------------------ - -PrismParser::Rtx_raygen_blockContext::Rtx_raygen_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Rtx_raygen_blockContext::rtx_raygen_stat() { - return getRuleContexts(); -} - -PrismParser::Rtx_raygen_statContext* PrismParser::Rtx_raygen_blockContext::rtx_raygen_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Rtx_raygen_blockContext::getRuleIndex() const { - return PrismParser::RuleRtx_raygen_block; -} - -void PrismParser::Rtx_raygen_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_raygen_block(this); -} - -void PrismParser::Rtx_raygen_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_raygen_block(this); -} - - -std::any PrismParser::Rtx_raygen_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_raygen_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_raygen_blockContext* PrismParser::rtx_raygen_block() { - Rtx_raygen_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 164, PrismParser::RuleRtx_raygen_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(782); - _errHandler->sync(this); - _la = _input->LA(1); - while (((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 67100672) != 0 || _la == PrismParser::OSBRACE - - || _la == PrismParser::COMMENT) { - setState(779); - rtx_raygen_stat(); - setState(784); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Rtx_raygen_definitionContext ------------------------------------------------------------------ - -PrismParser::Rtx_raygen_definitionContext::Rtx_raygen_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Rtx_raygen_definitionContext::RAYTRACE_RAYGEN() { - return getToken(PrismParser::RAYTRACE_RAYGEN, 0); -} - -PrismParser::Name_idContext* PrismParser::Rtx_raygen_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_raygen_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Rtx_raygen_blockContext* PrismParser::Rtx_raygen_definitionContext::rtx_raygen_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Rtx_raygen_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::Rtx_raygen_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Rtx_raygen_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::InheritContext* PrismParser::Rtx_raygen_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Rtx_raygen_definitionContext::getRuleIndex() const { - return PrismParser::RuleRtx_raygen_definition; -} - -void PrismParser::Rtx_raygen_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterRtx_raygen_definition(this); -} - -void PrismParser::Rtx_raygen_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitRtx_raygen_definition(this); -} - - -std::any PrismParser::Rtx_raygen_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitRtx_raygen_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Rtx_raygen_definitionContext* PrismParser::rtx_raygen_definition() { - Rtx_raygen_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 166, PrismParser::RuleRtx_raygen_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(788); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 69, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(785); - option_block(); - } - setState(790); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 69, _ctx); - } - setState(791); - match(PrismParser::RAYTRACE_RAYGEN); - setState(792); - name_id(); - setState(794); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(793); - inherit(); - } - setState(796); - match(PrismParser::OBRACE); - setState(797); - rtx_raygen_block(); - setState(798); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- View_declarationContext ------------------------------------------------------------------ - -PrismParser::View_declarationContext::View_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Type_idContext* PrismParser::View_declarationContext::type_id() { - return getRuleContext(0); -} - -PrismParser::Name_idContext* PrismParser::View_declarationContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::View_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::View_declarationContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::View_declarationContext::option_block(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::View_declarationContext::getRuleIndex() const { - return PrismParser::RuleView_declaration; -} - -void PrismParser::View_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterView_declaration(this); -} - -void PrismParser::View_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitView_declaration(this); -} - - -std::any PrismParser::View_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitView_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::View_declarationContext* PrismParser::view_declaration() { - View_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 168, PrismParser::RuleView_declaration); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(803); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 71, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(800); - option_block(); - } - setState(805); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 71, _ctx); - } - setState(806); - type_id(); - setState(807); - name_id(); - setState(808); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- View_statContext ------------------------------------------------------------------ - -PrismParser::View_statContext::View_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::View_declarationContext* PrismParser::View_statContext::view_declaration() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::View_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::View_statContext::getRuleIndex() const { - return PrismParser::RuleView_stat; -} - -void PrismParser::View_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterView_stat(this); -} - -void PrismParser::View_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitView_stat(this); -} - - -std::any PrismParser::View_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitView_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::View_statContext* PrismParser::view_stat() { - View_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 170, PrismParser::RuleView_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(812); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::OSBRACE: - case PrismParser::ID: { - enterOuterAlt(_localctx, 1); - setState(810); - view_declaration(); - break; - } - - case PrismParser::COMMENT: { - enterOuterAlt(_localctx, 2); - setState(811); - match(PrismParser::COMMENT); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- View_blockContext ------------------------------------------------------------------ - -PrismParser::View_blockContext::View_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::View_blockContext::view_stat() { - return getRuleContexts(); -} - -PrismParser::View_statContext* PrismParser::View_blockContext::view_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::View_blockContext::getRuleIndex() const { - return PrismParser::RuleView_block; -} - -void PrismParser::View_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterView_block(this); -} - -void PrismParser::View_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitView_block(this); -} - - -std::any PrismParser::View_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitView_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::View_blockContext* PrismParser::view_block() { - View_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 172, PrismParser::RuleView_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(817); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 1107296257) != 0) { - setState(814); - view_stat(); - setState(819); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- View_definitionContext ------------------------------------------------------------------ - -PrismParser::View_definitionContext::View_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::View_definitionContext::VIEW() { - return getToken(PrismParser::VIEW, 0); -} - -PrismParser::Name_idContext* PrismParser::View_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::View_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::View_blockContext* PrismParser::View_definitionContext::view_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::View_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::View_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::View_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::InheritContext* PrismParser::View_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::View_definitionContext::getRuleIndex() const { - return PrismParser::RuleView_definition; -} - -void PrismParser::View_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterView_definition(this); -} - -void PrismParser::View_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitView_definition(this); -} - - -std::any PrismParser::View_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitView_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::View_definitionContext* PrismParser::view_definition() { - View_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 174, PrismParser::RuleView_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(823); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 74, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(820); - option_block(); - } - setState(825); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 74, _ctx); - } - setState(826); - match(PrismParser::VIEW); - setState(827); - name_id(); - setState(829); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(828); - inherit(); - } - setState(831); - match(PrismParser::OBRACE); - setState(832); - view_block(); - setState(833); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Pass_definitionContext ------------------------------------------------------------------ - -PrismParser::Pass_definitionContext::Pass_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Pass_definitionContext::PASS() { - return getToken(PrismParser::PASS, 0); -} - -PrismParser::Name_idContext* PrismParser::Pass_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Pass_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::View_blockContext* PrismParser::Pass_definitionContext::view_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Pass_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - -std::vector PrismParser::Pass_definitionContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Pass_definitionContext::option_block(size_t i) { - return getRuleContext(i); -} - -PrismParser::InheritContext* PrismParser::Pass_definitionContext::inherit() { - return getRuleContext(0); -} - - -size_t PrismParser::Pass_definitionContext::getRuleIndex() const { - return PrismParser::RulePass_definition; -} - -void PrismParser::Pass_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPass_definition(this); -} - -void PrismParser::Pass_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPass_definition(this); -} - - -std::any PrismParser::Pass_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPass_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Pass_definitionContext* PrismParser::pass_definition() { - Pass_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 176, PrismParser::RulePass_definition); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - size_t alt; - enterOuterAlt(_localctx, 1); - setState(838); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 76, _ctx); - while (alt != 1 && alt != atn::ATN::INVALID_ALT_NUMBER) { - if (alt == 1 + 1) { - setState(835); - option_block(); - } - setState(840); - _errHandler->sync(this); - alt = getInterpreter()->adaptivePredict(_input, 76, _ctx); - } - setState(841); - match(PrismParser::PASS); - setState(842); - name_id(); - setState(844); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::COLON) { - setState(843); - inherit(); - } - setState(846); - match(PrismParser::OBRACE); - setState(847); - view_block(); - setState(848); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Pipeline_statContext ------------------------------------------------------------------ - -PrismParser::Pipeline_statContext::Pipeline_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Name_idContext* PrismParser::Pipeline_statContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Pipeline_statContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -std::vector PrismParser::Pipeline_statContext::option_block() { - return getRuleContexts(); -} - -PrismParser::Option_blockContext* PrismParser::Pipeline_statContext::option_block(size_t i) { - return getRuleContext(i); -} - -tree::TerminalNode* PrismParser::Pipeline_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Pipeline_statContext::getRuleIndex() const { - return PrismParser::RulePipeline_stat; -} - -void PrismParser::Pipeline_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPipeline_stat(this); -} - -void PrismParser::Pipeline_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPipeline_stat(this); -} - - -std::any PrismParser::Pipeline_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPipeline_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Pipeline_statContext* PrismParser::pipeline_stat() { - Pipeline_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 178, PrismParser::RulePipeline_stat); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(860); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::OSBRACE: - case PrismParser::ID: { - enterOuterAlt(_localctx, 1); - setState(853); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::OSBRACE) { - setState(850); - option_block(); - setState(855); - _errHandler->sync(this); - _la = _input->LA(1); - } - setState(856); - name_id(); - setState(857); - match(PrismParser::SCOL); - break; - } - - case PrismParser::COMMENT: { - enterOuterAlt(_localctx, 2); - setState(859); - match(PrismParser::COMMENT); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Pipeline_blockContext ------------------------------------------------------------------ - -PrismParser::Pipeline_blockContext::Pipeline_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Pipeline_blockContext::pipeline_stat() { - return getRuleContexts(); -} - -PrismParser::Pipeline_statContext* PrismParser::Pipeline_blockContext::pipeline_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Pipeline_blockContext::getRuleIndex() const { - return PrismParser::RulePipeline_block; -} - -void PrismParser::Pipeline_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPipeline_block(this); -} - -void PrismParser::Pipeline_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPipeline_block(this); -} - - -std::any PrismParser::Pipeline_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPipeline_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Pipeline_blockContext* PrismParser::pipeline_block() { - Pipeline_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 180, PrismParser::RulePipeline_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(865); - _errHandler->sync(this); - _la = _input->LA(1); - while ((((_la - 68) & ~ 0x3fULL) == 0) && - ((1ULL << (_la - 68)) & 1107296257) != 0) { - setState(862); - pipeline_stat(); - setState(867); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Pipeline_definitionContext ------------------------------------------------------------------ - -PrismParser::Pipeline_definitionContext::Pipeline_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Pipeline_definitionContext::PIPELINE() { - return getToken(PrismParser::PIPELINE, 0); -} - -PrismParser::Name_idContext* PrismParser::Pipeline_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Pipeline_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Pipeline_blockContext* PrismParser::Pipeline_definitionContext::pipeline_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Pipeline_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - - -size_t PrismParser::Pipeline_definitionContext::getRuleIndex() const { - return PrismParser::RulePipeline_definition; -} - -void PrismParser::Pipeline_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPipeline_definition(this); -} - -void PrismParser::Pipeline_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPipeline_definition(this); -} - - -std::any PrismParser::Pipeline_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPipeline_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Pipeline_definitionContext* PrismParser::pipeline_definition() { - Pipeline_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 182, PrismParser::RulePipeline_definition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(868); - match(PrismParser::PIPELINE); - setState(869); - name_id(); - setState(870); - match(PrismParser::OBRACE); - setState(871); - pipeline_block(); - setState(872); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Enum_value_declarationContext ------------------------------------------------------------------ - -PrismParser::Enum_value_declarationContext::Enum_value_declarationContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Name_idContext* PrismParser::Enum_value_declarationContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Enum_value_declarationContext::SCOL() { - return getToken(PrismParser::SCOL, 0); -} - -tree::TerminalNode* PrismParser::Enum_value_declarationContext::ASSIGN() { - return getToken(PrismParser::ASSIGN, 0); -} - -PrismParser::Value_idContext* PrismParser::Enum_value_declarationContext::value_id() { - return getRuleContext(0); -} - - -size_t PrismParser::Enum_value_declarationContext::getRuleIndex() const { - return PrismParser::RuleEnum_value_declaration; -} - -void PrismParser::Enum_value_declarationContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterEnum_value_declaration(this); -} - -void PrismParser::Enum_value_declarationContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitEnum_value_declaration(this); -} - - -std::any PrismParser::Enum_value_declarationContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitEnum_value_declaration(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Enum_value_declarationContext* PrismParser::enum_value_declaration() { - Enum_value_declarationContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 184, PrismParser::RuleEnum_value_declaration); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(874); - name_id(); - setState(877); - _errHandler->sync(this); - - _la = _input->LA(1); - if (_la == PrismParser::ASSIGN) { - setState(875); - match(PrismParser::ASSIGN); - setState(876); - value_id(); - } - setState(879); - match(PrismParser::SCOL); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Enum_statContext ------------------------------------------------------------------ - -PrismParser::Enum_statContext::Enum_statContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -PrismParser::Enum_value_declarationContext* PrismParser::Enum_statContext::enum_value_declaration() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Enum_statContext::COMMENT() { - return getToken(PrismParser::COMMENT, 0); -} - - -size_t PrismParser::Enum_statContext::getRuleIndex() const { - return PrismParser::RuleEnum_stat; -} - -void PrismParser::Enum_statContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterEnum_stat(this); -} - -void PrismParser::Enum_statContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitEnum_stat(this); -} - - -std::any PrismParser::Enum_statContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitEnum_stat(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Enum_statContext* PrismParser::enum_stat() { - Enum_statContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 186, PrismParser::RuleEnum_stat); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - setState(883); - _errHandler->sync(this); - switch (_input->LA(1)) { - case PrismParser::ID: { - enterOuterAlt(_localctx, 1); - setState(881); - enum_value_declaration(); - break; - } - - case PrismParser::COMMENT: { - enterOuterAlt(_localctx, 2); - setState(882); - match(PrismParser::COMMENT); - break; - } - - default: - throw NoViableAltException(this); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Enum_blockContext ------------------------------------------------------------------ - -PrismParser::Enum_blockContext::Enum_blockContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -std::vector PrismParser::Enum_blockContext::enum_stat() { - return getRuleContexts(); -} - -PrismParser::Enum_statContext* PrismParser::Enum_blockContext::enum_stat(size_t i) { - return getRuleContext(i); -} - - -size_t PrismParser::Enum_blockContext::getRuleIndex() const { - return PrismParser::RuleEnum_block; -} - -void PrismParser::Enum_blockContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterEnum_block(this); -} - -void PrismParser::Enum_blockContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitEnum_block(this); -} - - -std::any PrismParser::Enum_blockContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitEnum_block(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Enum_blockContext* PrismParser::enum_block() { - Enum_blockContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 188, PrismParser::RuleEnum_block); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(888); - _errHandler->sync(this); - _la = _input->LA(1); - while (_la == PrismParser::ID - - || _la == PrismParser::COMMENT) { - setState(885); - enum_stat(); - setState(890); - _errHandler->sync(this); - _la = _input->LA(1); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Enum_definitionContext ------------------------------------------------------------------ - -PrismParser::Enum_definitionContext::Enum_definitionContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Enum_definitionContext::ENUM() { - return getToken(PrismParser::ENUM, 0); -} - -PrismParser::Name_idContext* PrismParser::Enum_definitionContext::name_id() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Enum_definitionContext::OBRACE() { - return getToken(PrismParser::OBRACE, 0); -} - -PrismParser::Enum_blockContext* PrismParser::Enum_definitionContext::enum_block() { - return getRuleContext(0); -} - -tree::TerminalNode* PrismParser::Enum_definitionContext::CBRACE() { - return getToken(PrismParser::CBRACE, 0); -} - - -size_t PrismParser::Enum_definitionContext::getRuleIndex() const { - return PrismParser::RuleEnum_definition; -} - -void PrismParser::Enum_definitionContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterEnum_definition(this); -} - -void PrismParser::Enum_definitionContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitEnum_definition(this); -} - - -std::any PrismParser::Enum_definitionContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitEnum_definition(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Enum_definitionContext* PrismParser::enum_definition() { - Enum_definitionContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 190, PrismParser::RuleEnum_definition); - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(891); - match(PrismParser::ENUM); - setState(892); - name_id(); - setState(893); - match(PrismParser::OBRACE); - setState(894); - enum_block(); - setState(895); - match(PrismParser::CBRACE); - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Shader_typeContext ------------------------------------------------------------------ - -PrismParser::Shader_typeContext::Shader_typeContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t PrismParser::Shader_typeContext::getRuleIndex() const { - return PrismParser::RuleShader_type; -} - -void PrismParser::Shader_typeContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterShader_type(this); -} - -void PrismParser::Shader_typeContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitShader_type(this); -} - - -std::any PrismParser::Shader_typeContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitShader_type(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Shader_typeContext* PrismParser::shader_type() { - Shader_typeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 192, PrismParser::RuleShader_type); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(897); - _la = _input->LA(1); - if (!(((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 67100672) != 0)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Pso_param_idContext ------------------------------------------------------------------ - -PrismParser::Pso_param_idContext::Pso_param_idContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - - -size_t PrismParser::Pso_param_idContext::getRuleIndex() const { - return PrismParser::RulePso_param_id; -} - -void PrismParser::Pso_param_idContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterPso_param_id(this); -} - -void PrismParser::Pso_param_idContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitPso_param_id(this); -} - - -std::any PrismParser::Pso_param_idContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitPso_param_id(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Pso_param_idContext* PrismParser::pso_param_id() { - Pso_param_idContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 194, PrismParser::RulePso_param_id); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(899); - _la = _input->LA(1); - if (!(((_la & ~ 0x3fULL) == 0) && - ((1ULL << _la) & 35184304979968) != 0)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -//----------------- Bool_typeContext ------------------------------------------------------------------ - -PrismParser::Bool_typeContext::Bool_typeContext(ParserRuleContext *parent, size_t invokingState) - : ParserRuleContext(parent, invokingState) { -} - -tree::TerminalNode* PrismParser::Bool_typeContext::TRUE() { - return getToken(PrismParser::TRUE, 0); -} - -tree::TerminalNode* PrismParser::Bool_typeContext::FALSE() { - return getToken(PrismParser::FALSE, 0); -} - - -size_t PrismParser::Bool_typeContext::getRuleIndex() const { - return PrismParser::RuleBool_type; -} - -void PrismParser::Bool_typeContext::enterRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->enterBool_type(this); -} - -void PrismParser::Bool_typeContext::exitRule(tree::ParseTreeListener *listener) { - auto parserListener = dynamic_cast(listener); - if (parserListener != nullptr) - parserListener->exitBool_type(this); -} - - -std::any PrismParser::Bool_typeContext::accept(tree::ParseTreeVisitor *visitor) { - if (auto parserVisitor = dynamic_cast(visitor)) - return parserVisitor->visitBool_type(this); - else - return visitor->visitChildren(this); -} - -PrismParser::Bool_typeContext* PrismParser::bool_type() { - Bool_typeContext *_localctx = _tracker.createInstance(_ctx, getState()); - enterRule(_localctx, 196, PrismParser::RuleBool_type); - size_t _la = 0; - -#if __cplusplus > 201703L - auto onExit = finally([=, this] { -#else - auto onExit = finally([=] { -#endif - exitRule(); - }); - try { - enterOuterAlt(_localctx, 1); - setState(901); - _la = _input->LA(1); - if (!(_la == PrismParser::TRUE - - || _la == PrismParser::FALSE)) { - _errHandler->recoverInline(this); - } - else { - _errHandler->reportMatch(this); - consume(); - } - - } - catch (RecognitionException &e) { - _errHandler->reportError(this, e); - _localctx->exception = std::current_exception(); - _errHandler->recover(this, _localctx->exception); - } - - return _localctx; -} - -void PrismParser::initialize() { - ::antlr4::internal::call_once(prismParserOnceFlag, prismParserInitialize); -} diff --git a/sources/Prism/.antlr/PrismParser.h b/sources/Prism/.antlr/PrismParser.h deleted file mode 100644 index 0f2a41343..000000000 --- a/sources/Prism/.antlr/PrismParser.h +++ /dev/null @@ -1,1966 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - -#pragma once - - -#include "antlr4-runtime.h" - - - - -class PrismParser : public antlr4::Parser { -public: - enum { - T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, T__5 = 6, T__6 = 7, - T__7 = 8, T__8 = 9, T__9 = 10, T__10 = 11, T__11 = 12, T__12 = 13, T__13 = 14, - T__14 = 15, T__15 = 16, T__16 = 17, T__17 = 18, T__18 = 19, T__19 = 20, - T__20 = 21, T__21 = 22, T__22 = 23, T__23 = 24, T__24 = 25, T__25 = 26, - T__26 = 27, T__27 = 28, T__28 = 29, T__29 = 30, T__30 = 31, T__31 = 32, - T__32 = 33, T__33 = 34, T__34 = 35, T__35 = 36, T__36 = 37, T__37 = 38, - T__38 = 39, T__39 = 40, T__40 = 41, T__41 = 42, T__42 = 43, T__43 = 44, - OR = 45, AND = 46, PIPE = 47, EQ = 48, NEQ = 49, GT = 50, LT = 51, GTEQ = 52, - LTEQ = 53, PLUS = 54, MINUS = 55, DIV = 56, MOD = 57, POW = 58, NOT = 59, - SCOL = 60, COLON = 61, DOT = 62, ASSIGN = 63, OPAR = 64, CPAR = 65, - OBRACE = 66, CBRACE = 67, OSBRACE = 68, CSBRACE = 69, TRUE = 70, FALSE = 71, - LOG = 72, LAYOUT = 73, STRUCT = 74, NAMESPACE = 75, COMPUTE_PSO = 76, - GRAPHICS_PSO = 77, RAYTRACE_PSO = 78, WORKGRAPH_PSO = 79, NODE = 80, - NODE_OUTPUT = 81, RAYTRACE_RAYGEN = 82, RAYTRACE_PASS = 83, PASS = 84, - VIEW = 85, PIPELINE = 86, SLOT = 87, RT = 88, RTV = 89, DSV = 90, ROOTSIG = 91, - ENUM = 92, ID = 93, INT_SCALAR = 94, FLOAT_SCALAR = 95, STRING = 96, - RAWEXPR = 97, COMMENT = 98, SPACE = 99, POINTER = 100, FUNC_BODY = 101, - INSERT_START = 102, INSERT_END = 103, INSERT_BLOCK = 104 - }; - - enum { - RuleParse = 0, RuleDefinition = 1, RuleNamespace_definition = 2, RuleNamespace_header = 3, - RuleConst_definition = 4, RuleBind_option = 5, RuleCond_expr = 6, RuleCond_term = 7, - RuleCall = 8, RuleCall_arg = 9, RuleQualified_ref = 10, RuleMember_ref = 11, - RuleCond_op = 12, RuleFlag_value_holder = 13, RuleRaw_value = 14, RuleOptions_assign = 15, - RuleOption = 16, RuleOption_block = 17, RuleArray_count_id = 18, RuleArray = 19, - RuleValue_declaration = 20, RuleSlot_declaration = 21, RuleSampler_declaration = 22, - RuleDefine_declaration = 23, RuleRtv_formats_declaration = 24, RuleBlends_declaration = 25, - RulePointer = 26, RulePso_param = 27, RuleClass_no_template = 28, RuleType_with_template = 29, - RuleInherit_id = 30, RuleName_id = 31, RuleOption_id = 32, RuleOwner_id = 33, - RuleTemplate_id = 34, RuleFunction_id = 35, RuleValue_id = 36, RuleValue_id_ignore = 37, - RuleType_id = 38, RuleInsert_block = 39, RuleShader_path = 40, RuleInherit = 41, - RuleLayout_stat = 42, RuleLayout_block = 43, RuleLayout_definition = 44, - RuleTable_stat = 45, RuleFunction_definition = 46, RuleFunction_params = 47, - RuleFunction_semantic = 48, RuleTable_block = 49, RuleTable_definition = 50, - RuleRt_color_declaration = 51, RuleRt_ds_declaration = 52, RuleRt_stat = 53, - RuleRt_block = 54, RuleRt_definition = 55, RuleArray_value_holder = 56, - RuleArray_value_ids = 57, RuleRoot_sig = 58, RuleShader = 59, RuleCompute_pso_stat = 60, - RuleCompute_pso_block = 61, RuleCompute_pso_definition = 62, RuleGraphics_pso_stat = 63, - RuleGraphics_pso_block = 64, RuleGraphics_pso_definition = 65, RuleRtx_pso_stat = 66, - RuleRtx_pso_block = 67, RuleRtx_pso_definition = 68, RuleNode_param_id = 69, - RuleNode_param = 70, RuleNode_output_decl = 71, RuleNode_stat = 72, - RuleNode_block = 73, RuleNode_definition = 74, RuleWorkgraph_pso_stat = 75, - RuleWorkgraph_pso_block = 76, RuleWorkgraph_pso_definition = 77, RuleRtx_pass_stat = 78, - RuleRtx_pass_block = 79, RuleRtx_pass_definition = 80, RuleRtx_raygen_stat = 81, - RuleRtx_raygen_block = 82, RuleRtx_raygen_definition = 83, RuleView_declaration = 84, - RuleView_stat = 85, RuleView_block = 86, RuleView_definition = 87, RulePass_definition = 88, - RulePipeline_stat = 89, RulePipeline_block = 90, RulePipeline_definition = 91, - RuleEnum_value_declaration = 92, RuleEnum_stat = 93, RuleEnum_block = 94, - RuleEnum_definition = 95, RuleShader_type = 96, RulePso_param_id = 97, - RuleBool_type = 98 - }; - - explicit PrismParser(antlr4::TokenStream *input); - - PrismParser(antlr4::TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options); - - ~PrismParser() override; - - std::string getGrammarFileName() const override; - - const antlr4::atn::ATN& getATN() const override; - - const std::vector& getRuleNames() const override; - - const antlr4::dfa::Vocabulary& getVocabulary() const override; - - antlr4::atn::SerializedATNView getSerializedATN() const override; - - - class ParseContext; - class DefinitionContext; - class Namespace_definitionContext; - class Namespace_headerContext; - class Const_definitionContext; - class Bind_optionContext; - class Cond_exprContext; - class Cond_termContext; - class CallContext; - class Call_argContext; - class Qualified_refContext; - class Member_refContext; - class Cond_opContext; - class Flag_value_holderContext; - class Raw_valueContext; - class Options_assignContext; - class OptionContext; - class Option_blockContext; - class Array_count_idContext; - class ArrayContext; - class Value_declarationContext; - class Slot_declarationContext; - class Sampler_declarationContext; - class Define_declarationContext; - class Rtv_formats_declarationContext; - class Blends_declarationContext; - class PointerContext; - class Pso_paramContext; - class Class_no_templateContext; - class Type_with_templateContext; - class Inherit_idContext; - class Name_idContext; - class Option_idContext; - class Owner_idContext; - class Template_idContext; - class Function_idContext; - class Value_idContext; - class Value_id_ignoreContext; - class Type_idContext; - class Insert_blockContext; - class Shader_pathContext; - class InheritContext; - class Layout_statContext; - class Layout_blockContext; - class Layout_definitionContext; - class Table_statContext; - class Function_definitionContext; - class Function_paramsContext; - class Function_semanticContext; - class Table_blockContext; - class Table_definitionContext; - class Rt_color_declarationContext; - class Rt_ds_declarationContext; - class Rt_statContext; - class Rt_blockContext; - class Rt_definitionContext; - class Array_value_holderContext; - class Array_value_idsContext; - class Root_sigContext; - class ShaderContext; - class Compute_pso_statContext; - class Compute_pso_blockContext; - class Compute_pso_definitionContext; - class Graphics_pso_statContext; - class Graphics_pso_blockContext; - class Graphics_pso_definitionContext; - class Rtx_pso_statContext; - class Rtx_pso_blockContext; - class Rtx_pso_definitionContext; - class Node_param_idContext; - class Node_paramContext; - class Node_output_declContext; - class Node_statContext; - class Node_blockContext; - class Node_definitionContext; - class Workgraph_pso_statContext; - class Workgraph_pso_blockContext; - class Workgraph_pso_definitionContext; - class Rtx_pass_statContext; - class Rtx_pass_blockContext; - class Rtx_pass_definitionContext; - class Rtx_raygen_statContext; - class Rtx_raygen_blockContext; - class Rtx_raygen_definitionContext; - class View_declarationContext; - class View_statContext; - class View_blockContext; - class View_definitionContext; - class Pass_definitionContext; - class Pipeline_statContext; - class Pipeline_blockContext; - class Pipeline_definitionContext; - class Enum_value_declarationContext; - class Enum_statContext; - class Enum_blockContext; - class Enum_definitionContext; - class Shader_typeContext; - class Pso_param_idContext; - class Bool_typeContext; - - class ParseContext : public antlr4::ParserRuleContext { - public: - ParseContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *EOF(); - std::vector definition(); - DefinitionContext* definition(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ParseContext* parse(); - - class DefinitionContext : public antlr4::ParserRuleContext { - public: - DefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Layout_definitionContext *layout_definition(); - Table_definitionContext *table_definition(); - Rt_definitionContext *rt_definition(); - Workgraph_pso_definitionContext *workgraph_pso_definition(); - Compute_pso_definitionContext *compute_pso_definition(); - Graphics_pso_definitionContext *graphics_pso_definition(); - Rtx_pso_definitionContext *rtx_pso_definition(); - Rtx_pass_definitionContext *rtx_pass_definition(); - Rtx_raygen_definitionContext *rtx_raygen_definition(); - Pass_definitionContext *pass_definition(); - View_definitionContext *view_definition(); - Pipeline_definitionContext *pipeline_definition(); - Enum_definitionContext *enum_definition(); - Const_definitionContext *const_definition(); - Namespace_definitionContext *namespace_definition(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - DefinitionContext* definition(); - - class Namespace_definitionContext : public antlr4::ParserRuleContext { - public: - Namespace_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Namespace_headerContext *namespace_header(); - antlr4::tree::TerminalNode *OBRACE(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector definition(); - DefinitionContext* definition(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Namespace_definitionContext* namespace_definition(); - - class Namespace_headerContext : public antlr4::ParserRuleContext { - public: - Namespace_headerContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *NAMESPACE(); - Name_idContext *name_id(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Namespace_headerContext* namespace_header(); - - class Const_definitionContext : public antlr4::ParserRuleContext { - public: - Const_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Name_idContext *name_id(); - Options_assignContext *options_assign(); - antlr4::tree::TerminalNode *SCOL(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Const_definitionContext* const_definition(); - - class Bind_optionContext : public antlr4::ParserRuleContext { - public: - Bind_optionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector flag_value_holder(); - Flag_value_holderContext* flag_value_holder(size_t i); - Owner_idContext *owner_id(); - std::vector PIPE(); - antlr4::tree::TerminalNode* PIPE(size_t i); - Raw_valueContext *raw_value(); - Cond_exprContext *cond_expr(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Bind_optionContext* bind_option(); - - class Cond_exprContext : public antlr4::ParserRuleContext { - public: - Cond_exprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector cond_term(); - Cond_termContext* cond_term(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Cond_exprContext* cond_expr(); - - class Cond_termContext : public antlr4::ParserRuleContext { - public: - Cond_termContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Qualified_refContext *qualified_ref(); - Function_idContext *function_id(); - CallContext *call(); - Member_refContext *member_ref(); - Value_idContext *value_id(); - Cond_opContext *cond_op(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Cond_termContext* cond_term(); - - class CallContext : public antlr4::ParserRuleContext { - public: - CallContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - antlr4::tree::TerminalNode *OPAR(); - std::vector call_arg(); - Call_argContext* call_arg(size_t i); - antlr4::tree::TerminalNode *CPAR(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - CallContext* call(); - - class Call_argContext : public antlr4::ParserRuleContext { - public: - Call_argContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector cond_term(); - Cond_termContext* cond_term(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Call_argContext* call_arg(); - - class Qualified_refContext : public antlr4::ParserRuleContext { - public: - Qualified_refContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Owner_idContext *owner_id(); - Value_idContext *value_id(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Qualified_refContext* qualified_ref(); - - class Member_refContext : public antlr4::ParserRuleContext { - public: - Member_refContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector name_id(); - Name_idContext* name_id(size_t i); - antlr4::tree::TerminalNode *DOT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Member_refContext* member_ref(); - - class Cond_opContext : public antlr4::ParserRuleContext { - public: - Cond_opContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *AND(); - antlr4::tree::TerminalNode *OR(); - antlr4::tree::TerminalNode *NOT(); - antlr4::tree::TerminalNode *EQ(); - antlr4::tree::TerminalNode *NEQ(); - antlr4::tree::TerminalNode *GTEQ(); - antlr4::tree::TerminalNode *LTEQ(); - antlr4::tree::TerminalNode *GT(); - antlr4::tree::TerminalNode *LT(); - antlr4::tree::TerminalNode *OPAR(); - antlr4::tree::TerminalNode *CPAR(); - antlr4::tree::TerminalNode *PLUS(); - antlr4::tree::TerminalNode *MINUS(); - antlr4::tree::TerminalNode *POINTER(); - antlr4::tree::TerminalNode *DIV(); - antlr4::tree::TerminalNode *MOD(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Cond_opContext* cond_op(); - - class Flag_value_holderContext : public antlr4::ParserRuleContext { - public: - Flag_value_holderContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Value_idContext *value_id(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Flag_value_holderContext* flag_value_holder(); - - class Raw_valueContext : public antlr4::ParserRuleContext { - public: - Raw_valueContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *RAWEXPR(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Raw_valueContext* raw_value(); - - class Options_assignContext : public antlr4::ParserRuleContext { - public: - Options_assignContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ASSIGN(); - Bind_optionContext *bind_option(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Options_assignContext* options_assign(); - - class OptionContext : public antlr4::ParserRuleContext { - public: - OptionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Name_idContext *name_id(); - Options_assignContext *options_assign(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - OptionContext* option(); - - class Option_blockContext : public antlr4::ParserRuleContext { - public: - Option_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OSBRACE(); - std::vector option(); - OptionContext* option(size_t i); - antlr4::tree::TerminalNode *CSBRACE(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Option_blockContext* option_block(); - - class Array_count_idContext : public antlr4::ParserRuleContext { - public: - Array_count_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *INT_SCALAR(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Array_count_idContext* array_count_id(); - - class ArrayContext : public antlr4::ParserRuleContext { - public: - ArrayContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OSBRACE(); - antlr4::tree::TerminalNode *CSBRACE(); - Array_count_idContext *array_count_id(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ArrayContext* array(); - - class Value_declarationContext : public antlr4::ParserRuleContext { - public: - Value_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Type_idContext *type_id(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - ArrayContext *array(); - antlr4::tree::TerminalNode *ASSIGN(); - Value_idContext *value_id(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Value_declarationContext* value_declaration(); - - class Slot_declarationContext : public antlr4::ParserRuleContext { - public: - Slot_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *SLOT(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Slot_declarationContext* slot_declaration(); - - class Sampler_declarationContext : public antlr4::ParserRuleContext { - public: - Sampler_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Name_idContext *name_id(); - antlr4::tree::TerminalNode *ASSIGN(); - Value_idContext *value_id(); - antlr4::tree::TerminalNode *SCOL(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Sampler_declarationContext* sampler_declaration(); - - class Define_declarationContext : public antlr4::ParserRuleContext { - public: - Define_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - antlr4::tree::TerminalNode *ASSIGN(); - Array_value_idsContext *array_value_ids(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Define_declarationContext* define_declaration(); - - class Rtv_formats_declarationContext : public antlr4::ParserRuleContext { - public: - Rtv_formats_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ASSIGN(); - Array_value_idsContext *array_value_ids(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtv_formats_declarationContext* rtv_formats_declaration(); - - class Blends_declarationContext : public antlr4::ParserRuleContext { - public: - Blends_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ASSIGN(); - Array_value_idsContext *array_value_ids(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Blends_declarationContext* blends_declaration(); - - class PointerContext : public antlr4::ParserRuleContext { - public: - PointerContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *POINTER(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - PointerContext* pointer(); - - class Pso_paramContext : public antlr4::ParserRuleContext { - public: - Pso_paramContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Pso_param_idContext *pso_param_id(); - antlr4::tree::TerminalNode *ASSIGN(); - Value_idContext *value_id(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Pso_paramContext* pso_param(); - - class Class_no_templateContext : public antlr4::ParserRuleContext { - public: - Class_no_templateContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Class_no_templateContext* class_no_template(); - - class Type_with_templateContext : public antlr4::ParserRuleContext { - public: - Type_with_templateContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Class_no_templateContext *class_no_template(); - antlr4::tree::TerminalNode *LT(); - antlr4::tree::TerminalNode *GT(); - PointerContext *pointer(); - std::vector template_id(); - Template_idContext* template_id(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Type_with_templateContext* type_with_template(); - - class Inherit_idContext : public antlr4::ParserRuleContext { - public: - Inherit_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Inherit_idContext* inherit_id(); - - class Name_idContext : public antlr4::ParserRuleContext { - public: - Name_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Name_idContext* name_id(); - - class Option_idContext : public antlr4::ParserRuleContext { - public: - Option_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Option_idContext* option_id(); - - class Owner_idContext : public antlr4::ParserRuleContext { - public: - Owner_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Owner_idContext* owner_id(); - - class Template_idContext : public antlr4::ParserRuleContext { - public: - Template_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Template_idContext* template_id(); - - class Function_idContext : public antlr4::ParserRuleContext { - public: - Function_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - antlr4::tree::TerminalNode *OPAR(); - antlr4::tree::TerminalNode *CPAR(); - std::vector value_id_ignore(); - Value_id_ignoreContext* value_id_ignore(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Function_idContext* function_id(); - - class Value_idContext : public antlr4::ParserRuleContext { - public: - Value_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Shader_typeContext *shader_type(); - antlr4::tree::TerminalNode *ID(); - antlr4::tree::TerminalNode *INT_SCALAR(); - antlr4::tree::TerminalNode *FLOAT_SCALAR(); - Bool_typeContext *bool_type(); - Function_idContext *function_id(); - Array_value_idsContext *array_value_ids(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Value_idContext* value_id(); - - class Value_id_ignoreContext : public antlr4::ParserRuleContext { - public: - Value_id_ignoreContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ID(); - antlr4::tree::TerminalNode *INT_SCALAR(); - antlr4::tree::TerminalNode *FLOAT_SCALAR(); - Bool_typeContext *bool_type(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Value_id_ignoreContext* value_id_ignore(); - - class Type_idContext : public antlr4::ParserRuleContext { - public: - Type_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Type_with_templateContext *type_with_template(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Type_idContext* type_id(); - - class Insert_blockContext : public antlr4::ParserRuleContext { - public: - Insert_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *INSERT_BLOCK(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Insert_blockContext* insert_block(); - - class Shader_pathContext : public antlr4::ParserRuleContext { - public: - Shader_pathContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *STRING(); - antlr4::tree::TerminalNode *ID(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Shader_pathContext* shader_path(); - - class InheritContext : public antlr4::ParserRuleContext { - public: - InheritContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *COLON(); - std::vector inherit_id(); - Inherit_idContext* inherit_id(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - InheritContext* inherit(); - - class Layout_statContext : public antlr4::ParserRuleContext { - public: - Layout_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Slot_declarationContext *slot_declaration(); - Sampler_declarationContext *sampler_declaration(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Layout_statContext* layout_stat(); - - class Layout_blockContext : public antlr4::ParserRuleContext { - public: - Layout_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector layout_stat(); - Layout_statContext* layout_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Layout_blockContext* layout_block(); - - class Layout_definitionContext : public antlr4::ParserRuleContext { - public: - Layout_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *LAYOUT(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Layout_blockContext *layout_block(); - antlr4::tree::TerminalNode *CBRACE(); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Layout_definitionContext* layout_definition(); - - class Table_statContext : public antlr4::ParserRuleContext { - public: - Table_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Value_declarationContext *value_declaration(); - Function_definitionContext *function_definition(); - Insert_blockContext *insert_block(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Table_statContext* table_stat(); - - class Function_definitionContext : public antlr4::ParserRuleContext { - public: - Function_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Type_idContext *type_id(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OPAR(); - Function_paramsContext *function_params(); - antlr4::tree::TerminalNode *CPAR(); - antlr4::tree::TerminalNode *FUNC_BODY(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - Function_semanticContext *function_semantic(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Function_definitionContext* function_definition(); - - class Function_paramsContext : public antlr4::ParserRuleContext { - public: - Function_paramsContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector OPAR(); - antlr4::tree::TerminalNode* OPAR(size_t i); - std::vector function_params(); - Function_paramsContext* function_params(size_t i); - std::vector CPAR(); - antlr4::tree::TerminalNode* CPAR(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Function_paramsContext* function_params(); - - class Function_semanticContext : public antlr4::ParserRuleContext { - public: - Function_semanticContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *COLON(); - antlr4::tree::TerminalNode *ID(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Function_semanticContext* function_semantic(); - - class Table_blockContext : public antlr4::ParserRuleContext { - public: - Table_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector table_stat(); - Table_statContext* table_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Table_blockContext* table_block(); - - class Table_definitionContext : public antlr4::ParserRuleContext { - public: - Table_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *STRUCT(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Table_blockContext *table_block(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Table_definitionContext* table_definition(); - - class Rt_color_declarationContext : public antlr4::ParserRuleContext { - public: - Rt_color_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Type_idContext *type_id(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rt_color_declarationContext* rt_color_declaration(); - - class Rt_ds_declarationContext : public antlr4::ParserRuleContext { - public: - Rt_ds_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *DSV(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rt_ds_declarationContext* rt_ds_declaration(); - - class Rt_statContext : public antlr4::ParserRuleContext { - public: - Rt_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Rt_color_declarationContext *rt_color_declaration(); - Rt_ds_declarationContext *rt_ds_declaration(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rt_statContext* rt_stat(); - - class Rt_blockContext : public antlr4::ParserRuleContext { - public: - Rt_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector rt_stat(); - Rt_statContext* rt_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rt_blockContext* rt_block(); - - class Rt_definitionContext : public antlr4::ParserRuleContext { - public: - Rt_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *RT(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Rt_blockContext *rt_block(); - antlr4::tree::TerminalNode *CBRACE(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rt_definitionContext* rt_definition(); - - class Array_value_holderContext : public antlr4::ParserRuleContext { - public: - Array_value_holderContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Value_idContext *value_id(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Array_value_holderContext* array_value_holder(); - - class Array_value_idsContext : public antlr4::ParserRuleContext { - public: - Array_value_idsContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *OBRACE(); - std::vector array_value_holder(); - Array_value_holderContext* array_value_holder(size_t i); - antlr4::tree::TerminalNode *CBRACE(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Array_value_idsContext* array_value_ids(); - - class Root_sigContext : public antlr4::ParserRuleContext { - public: - Root_sigContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ROOTSIG(); - antlr4::tree::TerminalNode *ASSIGN(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Root_sigContext* root_sig(); - - class ShaderContext : public antlr4::ParserRuleContext { - public: - ShaderContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Shader_typeContext *shader_type(); - antlr4::tree::TerminalNode *ASSIGN(); - Shader_pathContext *shader_path(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - ShaderContext* shader(); - - class Compute_pso_statContext : public antlr4::ParserRuleContext { - public: - Compute_pso_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Root_sigContext *root_sig(); - ShaderContext *shader(); - Define_declarationContext *define_declaration(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Compute_pso_statContext* compute_pso_stat(); - - class Compute_pso_blockContext : public antlr4::ParserRuleContext { - public: - Compute_pso_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector compute_pso_stat(); - Compute_pso_statContext* compute_pso_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Compute_pso_blockContext* compute_pso_block(); - - class Compute_pso_definitionContext : public antlr4::ParserRuleContext { - public: - Compute_pso_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *COMPUTE_PSO(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Compute_pso_blockContext *compute_pso_block(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Compute_pso_definitionContext* compute_pso_definition(); - - class Graphics_pso_statContext : public antlr4::ParserRuleContext { - public: - Graphics_pso_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Root_sigContext *root_sig(); - ShaderContext *shader(); - Define_declarationContext *define_declaration(); - Rtv_formats_declarationContext *rtv_formats_declaration(); - Blends_declarationContext *blends_declaration(); - Pso_paramContext *pso_param(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Graphics_pso_statContext* graphics_pso_stat(); - - class Graphics_pso_blockContext : public antlr4::ParserRuleContext { - public: - Graphics_pso_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector graphics_pso_stat(); - Graphics_pso_statContext* graphics_pso_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Graphics_pso_blockContext* graphics_pso_block(); - - class Graphics_pso_definitionContext : public antlr4::ParserRuleContext { - public: - Graphics_pso_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *GRAPHICS_PSO(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Graphics_pso_blockContext *graphics_pso_block(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Graphics_pso_definitionContext* graphics_pso_definition(); - - class Rtx_pso_statContext : public antlr4::ParserRuleContext { - public: - Rtx_pso_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Root_sigContext *root_sig(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_pso_statContext* rtx_pso_stat(); - - class Rtx_pso_blockContext : public antlr4::ParserRuleContext { - public: - Rtx_pso_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector rtx_pso_stat(); - Rtx_pso_statContext* rtx_pso_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_pso_blockContext* rtx_pso_block(); - - class Rtx_pso_definitionContext : public antlr4::ParserRuleContext { - public: - Rtx_pso_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *RAYTRACE_PSO(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Rtx_pso_blockContext *rtx_pso_block(); - antlr4::tree::TerminalNode *CBRACE(); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_pso_definitionContext* rtx_pso_definition(); - - class Node_param_idContext : public antlr4::ParserRuleContext { - public: - Node_param_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Node_param_idContext* node_param_id(); - - class Node_paramContext : public antlr4::ParserRuleContext { - public: - Node_paramContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Node_param_idContext *node_param_id(); - antlr4::tree::TerminalNode *ASSIGN(); - Value_idContext *value_id(); - antlr4::tree::TerminalNode *SCOL(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Node_paramContext* node_param(); - - class Node_output_declContext : public antlr4::ParserRuleContext { - public: - Node_output_declContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *NODE_OUTPUT(); - Type_idContext *type_id(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Node_output_declContext* node_output_decl(); - - class Node_statContext : public antlr4::ParserRuleContext { - public: - Node_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Node_paramContext *node_param(); - Node_output_declContext *node_output_decl(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Node_statContext* node_stat(); - - class Node_blockContext : public antlr4::ParserRuleContext { - public: - Node_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector node_stat(); - Node_statContext* node_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Node_blockContext* node_block(); - - class Node_definitionContext : public antlr4::ParserRuleContext { - public: - Node_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *NODE(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Node_blockContext *node_block(); - antlr4::tree::TerminalNode *CBRACE(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Node_definitionContext* node_definition(); - - class Workgraph_pso_statContext : public antlr4::ParserRuleContext { - public: - Workgraph_pso_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Root_sigContext *root_sig(); - ShaderContext *shader(); - Define_declarationContext *define_declaration(); - Node_definitionContext *node_definition(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Workgraph_pso_statContext* workgraph_pso_stat(); - - class Workgraph_pso_blockContext : public antlr4::ParserRuleContext { - public: - Workgraph_pso_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector workgraph_pso_stat(); - Workgraph_pso_statContext* workgraph_pso_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Workgraph_pso_blockContext* workgraph_pso_block(); - - class Workgraph_pso_definitionContext : public antlr4::ParserRuleContext { - public: - Workgraph_pso_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *WORKGRAPH_PSO(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Workgraph_pso_blockContext *workgraph_pso_block(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Workgraph_pso_definitionContext* workgraph_pso_definition(); - - class Rtx_pass_statContext : public antlr4::ParserRuleContext { - public: - Rtx_pass_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - ShaderContext *shader(); - antlr4::tree::TerminalNode *COMMENT(); - Pso_paramContext *pso_param(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_pass_statContext* rtx_pass_stat(); - - class Rtx_pass_blockContext : public antlr4::ParserRuleContext { - public: - Rtx_pass_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector rtx_pass_stat(); - Rtx_pass_statContext* rtx_pass_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_pass_blockContext* rtx_pass_block(); - - class Rtx_pass_definitionContext : public antlr4::ParserRuleContext { - public: - Rtx_pass_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *RAYTRACE_PASS(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Rtx_pass_blockContext *rtx_pass_block(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_pass_definitionContext* rtx_pass_definition(); - - class Rtx_raygen_statContext : public antlr4::ParserRuleContext { - public: - Rtx_raygen_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - ShaderContext *shader(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_raygen_statContext* rtx_raygen_stat(); - - class Rtx_raygen_blockContext : public antlr4::ParserRuleContext { - public: - Rtx_raygen_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector rtx_raygen_stat(); - Rtx_raygen_statContext* rtx_raygen_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_raygen_blockContext* rtx_raygen_block(); - - class Rtx_raygen_definitionContext : public antlr4::ParserRuleContext { - public: - Rtx_raygen_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *RAYTRACE_RAYGEN(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Rtx_raygen_blockContext *rtx_raygen_block(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Rtx_raygen_definitionContext* rtx_raygen_definition(); - - class View_declarationContext : public antlr4::ParserRuleContext { - public: - View_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Type_idContext *type_id(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - View_declarationContext* view_declaration(); - - class View_statContext : public antlr4::ParserRuleContext { - public: - View_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - View_declarationContext *view_declaration(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - View_statContext* view_stat(); - - class View_blockContext : public antlr4::ParserRuleContext { - public: - View_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector view_stat(); - View_statContext* view_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - View_blockContext* view_block(); - - class View_definitionContext : public antlr4::ParserRuleContext { - public: - View_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *VIEW(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - View_blockContext *view_block(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - View_definitionContext* view_definition(); - - class Pass_definitionContext : public antlr4::ParserRuleContext { - public: - Pass_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *PASS(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - View_blockContext *view_block(); - antlr4::tree::TerminalNode *CBRACE(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - InheritContext *inherit(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Pass_definitionContext* pass_definition(); - - class Pipeline_statContext : public antlr4::ParserRuleContext { - public: - Pipeline_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - std::vector option_block(); - Option_blockContext* option_block(size_t i); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Pipeline_statContext* pipeline_stat(); - - class Pipeline_blockContext : public antlr4::ParserRuleContext { - public: - Pipeline_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector pipeline_stat(); - Pipeline_statContext* pipeline_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Pipeline_blockContext* pipeline_block(); - - class Pipeline_definitionContext : public antlr4::ParserRuleContext { - public: - Pipeline_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *PIPELINE(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Pipeline_blockContext *pipeline_block(); - antlr4::tree::TerminalNode *CBRACE(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Pipeline_definitionContext* pipeline_definition(); - - class Enum_value_declarationContext : public antlr4::ParserRuleContext { - public: - Enum_value_declarationContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Name_idContext *name_id(); - antlr4::tree::TerminalNode *SCOL(); - antlr4::tree::TerminalNode *ASSIGN(); - Value_idContext *value_id(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Enum_value_declarationContext* enum_value_declaration(); - - class Enum_statContext : public antlr4::ParserRuleContext { - public: - Enum_statContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - Enum_value_declarationContext *enum_value_declaration(); - antlr4::tree::TerminalNode *COMMENT(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Enum_statContext* enum_stat(); - - class Enum_blockContext : public antlr4::ParserRuleContext { - public: - Enum_blockContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector enum_stat(); - Enum_statContext* enum_stat(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Enum_blockContext* enum_block(); - - class Enum_definitionContext : public antlr4::ParserRuleContext { - public: - Enum_definitionContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *ENUM(); - Name_idContext *name_id(); - antlr4::tree::TerminalNode *OBRACE(); - Enum_blockContext *enum_block(); - antlr4::tree::TerminalNode *CBRACE(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Enum_definitionContext* enum_definition(); - - class Shader_typeContext : public antlr4::ParserRuleContext { - public: - Shader_typeContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Shader_typeContext* shader_type(); - - class Pso_param_idContext : public antlr4::ParserRuleContext { - public: - Pso_param_idContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Pso_param_idContext* pso_param_id(); - - class Bool_typeContext : public antlr4::ParserRuleContext { - public: - Bool_typeContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *TRUE(); - antlr4::tree::TerminalNode *FALSE(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; - - }; - - Bool_typeContext* bool_type(); - - - // By default the static state used to implement the parser is lazily initialized during the first - // call to the constructor. You can call this function if you wish to initialize the static state - // ahead of time. - static void initialize(); - -private: -}; - diff --git a/sources/Prism/.antlr/PrismVisitor.cpp b/sources/Prism/.antlr/PrismVisitor.cpp deleted file mode 100644 index 52134c47e..000000000 --- a/sources/Prism/.antlr/PrismVisitor.cpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - - -#include "PrismVisitor.h" - - diff --git a/sources/Prism/.antlr/PrismVisitor.h b/sources/Prism/.antlr/PrismVisitor.h deleted file mode 100644 index 86d432b3b..000000000 --- a/sources/Prism/.antlr/PrismVisitor.h +++ /dev/null @@ -1,222 +0,0 @@ - -// Generated from sources/Prism/Prism.g4 by ANTLR 4.11.1 - -#pragma once - - -#include "antlr4-runtime.h" -#include "PrismParser.h" - - - -/** - * This class defines an abstract visitor for a parse tree - * produced by PrismParser. - */ -class PrismVisitor : public antlr4::tree::AbstractParseTreeVisitor { -public: - - /** - * Visit parse trees produced by PrismParser. - */ - virtual std::any visitParse(PrismParser::ParseContext *context) = 0; - - virtual std::any visitDefinition(PrismParser::DefinitionContext *context) = 0; - - virtual std::any visitNamespace_definition(PrismParser::Namespace_definitionContext *context) = 0; - - virtual std::any visitNamespace_header(PrismParser::Namespace_headerContext *context) = 0; - - virtual std::any visitConst_definition(PrismParser::Const_definitionContext *context) = 0; - - virtual std::any visitBind_option(PrismParser::Bind_optionContext *context) = 0; - - virtual std::any visitCond_expr(PrismParser::Cond_exprContext *context) = 0; - - virtual std::any visitCond_term(PrismParser::Cond_termContext *context) = 0; - - virtual std::any visitCall(PrismParser::CallContext *context) = 0; - - virtual std::any visitCall_arg(PrismParser::Call_argContext *context) = 0; - - virtual std::any visitQualified_ref(PrismParser::Qualified_refContext *context) = 0; - - virtual std::any visitMember_ref(PrismParser::Member_refContext *context) = 0; - - virtual std::any visitCond_op(PrismParser::Cond_opContext *context) = 0; - - virtual std::any visitFlag_value_holder(PrismParser::Flag_value_holderContext *context) = 0; - - virtual std::any visitRaw_value(PrismParser::Raw_valueContext *context) = 0; - - virtual std::any visitOptions_assign(PrismParser::Options_assignContext *context) = 0; - - virtual std::any visitOption(PrismParser::OptionContext *context) = 0; - - virtual std::any visitOption_block(PrismParser::Option_blockContext *context) = 0; - - virtual std::any visitArray_count_id(PrismParser::Array_count_idContext *context) = 0; - - virtual std::any visitArray(PrismParser::ArrayContext *context) = 0; - - virtual std::any visitValue_declaration(PrismParser::Value_declarationContext *context) = 0; - - virtual std::any visitSlot_declaration(PrismParser::Slot_declarationContext *context) = 0; - - virtual std::any visitSampler_declaration(PrismParser::Sampler_declarationContext *context) = 0; - - virtual std::any visitDefine_declaration(PrismParser::Define_declarationContext *context) = 0; - - virtual std::any visitRtv_formats_declaration(PrismParser::Rtv_formats_declarationContext *context) = 0; - - virtual std::any visitBlends_declaration(PrismParser::Blends_declarationContext *context) = 0; - - virtual std::any visitPointer(PrismParser::PointerContext *context) = 0; - - virtual std::any visitPso_param(PrismParser::Pso_paramContext *context) = 0; - - virtual std::any visitClass_no_template(PrismParser::Class_no_templateContext *context) = 0; - - virtual std::any visitType_with_template(PrismParser::Type_with_templateContext *context) = 0; - - virtual std::any visitInherit_id(PrismParser::Inherit_idContext *context) = 0; - - virtual std::any visitName_id(PrismParser::Name_idContext *context) = 0; - - virtual std::any visitOption_id(PrismParser::Option_idContext *context) = 0; - - virtual std::any visitOwner_id(PrismParser::Owner_idContext *context) = 0; - - virtual std::any visitTemplate_id(PrismParser::Template_idContext *context) = 0; - - virtual std::any visitFunction_id(PrismParser::Function_idContext *context) = 0; - - virtual std::any visitValue_id(PrismParser::Value_idContext *context) = 0; - - virtual std::any visitValue_id_ignore(PrismParser::Value_id_ignoreContext *context) = 0; - - virtual std::any visitType_id(PrismParser::Type_idContext *context) = 0; - - virtual std::any visitInsert_block(PrismParser::Insert_blockContext *context) = 0; - - virtual std::any visitShader_path(PrismParser::Shader_pathContext *context) = 0; - - virtual std::any visitInherit(PrismParser::InheritContext *context) = 0; - - virtual std::any visitLayout_stat(PrismParser::Layout_statContext *context) = 0; - - virtual std::any visitLayout_block(PrismParser::Layout_blockContext *context) = 0; - - virtual std::any visitLayout_definition(PrismParser::Layout_definitionContext *context) = 0; - - virtual std::any visitTable_stat(PrismParser::Table_statContext *context) = 0; - - virtual std::any visitFunction_definition(PrismParser::Function_definitionContext *context) = 0; - - virtual std::any visitFunction_params(PrismParser::Function_paramsContext *context) = 0; - - virtual std::any visitFunction_semantic(PrismParser::Function_semanticContext *context) = 0; - - virtual std::any visitTable_block(PrismParser::Table_blockContext *context) = 0; - - virtual std::any visitTable_definition(PrismParser::Table_definitionContext *context) = 0; - - virtual std::any visitRt_color_declaration(PrismParser::Rt_color_declarationContext *context) = 0; - - virtual std::any visitRt_ds_declaration(PrismParser::Rt_ds_declarationContext *context) = 0; - - virtual std::any visitRt_stat(PrismParser::Rt_statContext *context) = 0; - - virtual std::any visitRt_block(PrismParser::Rt_blockContext *context) = 0; - - virtual std::any visitRt_definition(PrismParser::Rt_definitionContext *context) = 0; - - virtual std::any visitArray_value_holder(PrismParser::Array_value_holderContext *context) = 0; - - virtual std::any visitArray_value_ids(PrismParser::Array_value_idsContext *context) = 0; - - virtual std::any visitRoot_sig(PrismParser::Root_sigContext *context) = 0; - - virtual std::any visitShader(PrismParser::ShaderContext *context) = 0; - - virtual std::any visitCompute_pso_stat(PrismParser::Compute_pso_statContext *context) = 0; - - virtual std::any visitCompute_pso_block(PrismParser::Compute_pso_blockContext *context) = 0; - - virtual std::any visitCompute_pso_definition(PrismParser::Compute_pso_definitionContext *context) = 0; - - virtual std::any visitGraphics_pso_stat(PrismParser::Graphics_pso_statContext *context) = 0; - - virtual std::any visitGraphics_pso_block(PrismParser::Graphics_pso_blockContext *context) = 0; - - virtual std::any visitGraphics_pso_definition(PrismParser::Graphics_pso_definitionContext *context) = 0; - - virtual std::any visitRtx_pso_stat(PrismParser::Rtx_pso_statContext *context) = 0; - - virtual std::any visitRtx_pso_block(PrismParser::Rtx_pso_blockContext *context) = 0; - - virtual std::any visitRtx_pso_definition(PrismParser::Rtx_pso_definitionContext *context) = 0; - - virtual std::any visitNode_param_id(PrismParser::Node_param_idContext *context) = 0; - - virtual std::any visitNode_param(PrismParser::Node_paramContext *context) = 0; - - virtual std::any visitNode_output_decl(PrismParser::Node_output_declContext *context) = 0; - - virtual std::any visitNode_stat(PrismParser::Node_statContext *context) = 0; - - virtual std::any visitNode_block(PrismParser::Node_blockContext *context) = 0; - - virtual std::any visitNode_definition(PrismParser::Node_definitionContext *context) = 0; - - virtual std::any visitWorkgraph_pso_stat(PrismParser::Workgraph_pso_statContext *context) = 0; - - virtual std::any visitWorkgraph_pso_block(PrismParser::Workgraph_pso_blockContext *context) = 0; - - virtual std::any visitWorkgraph_pso_definition(PrismParser::Workgraph_pso_definitionContext *context) = 0; - - virtual std::any visitRtx_pass_stat(PrismParser::Rtx_pass_statContext *context) = 0; - - virtual std::any visitRtx_pass_block(PrismParser::Rtx_pass_blockContext *context) = 0; - - virtual std::any visitRtx_pass_definition(PrismParser::Rtx_pass_definitionContext *context) = 0; - - virtual std::any visitRtx_raygen_stat(PrismParser::Rtx_raygen_statContext *context) = 0; - - virtual std::any visitRtx_raygen_block(PrismParser::Rtx_raygen_blockContext *context) = 0; - - virtual std::any visitRtx_raygen_definition(PrismParser::Rtx_raygen_definitionContext *context) = 0; - - virtual std::any visitView_declaration(PrismParser::View_declarationContext *context) = 0; - - virtual std::any visitView_stat(PrismParser::View_statContext *context) = 0; - - virtual std::any visitView_block(PrismParser::View_blockContext *context) = 0; - - virtual std::any visitView_definition(PrismParser::View_definitionContext *context) = 0; - - virtual std::any visitPass_definition(PrismParser::Pass_definitionContext *context) = 0; - - virtual std::any visitPipeline_stat(PrismParser::Pipeline_statContext *context) = 0; - - virtual std::any visitPipeline_block(PrismParser::Pipeline_blockContext *context) = 0; - - virtual std::any visitPipeline_definition(PrismParser::Pipeline_definitionContext *context) = 0; - - virtual std::any visitEnum_value_declaration(PrismParser::Enum_value_declarationContext *context) = 0; - - virtual std::any visitEnum_stat(PrismParser::Enum_statContext *context) = 0; - - virtual std::any visitEnum_block(PrismParser::Enum_blockContext *context) = 0; - - virtual std::any visitEnum_definition(PrismParser::Enum_definitionContext *context) = 0; - - virtual std::any visitShader_type(PrismParser::Shader_typeContext *context) = 0; - - virtual std::any visitPso_param_id(PrismParser::Pso_param_idContext *context) = 0; - - virtual std::any visitBool_type(PrismParser::Bool_typeContext *context) = 0; - - -}; - diff --git a/sources/Prism/.antlr/antlr4-runtime.h b/sources/Prism/.antlr/antlr4-runtime.h deleted file mode 100644 index cabc04b1d..000000000 --- a/sources/Prism/.antlr/antlr4-runtime.h +++ /dev/null @@ -1,6 +0,0 @@ -import antlr4; - -#undef TRUE -#undef FALSE -#undef EOF -#define assert(x) ASSERT(x) \ No newline at end of file diff --git a/sources/Prism/LSP.cpp b/sources/Prism/LSP.cpp index d130573ac..0a5401c81 100644 --- a/sources/Prism/LSP.cpp +++ b/sources/Prism/LSP.cpp @@ -568,7 +568,7 @@ namespace { "layout", "slot" }, { "Pipeline", "pipeline entry" }, }; - // Mirrors Prism.g4's shader_type rule. + // Mirrors PrismGrammar.h's shader_type rule. inline static const std::set SHADER_STAGES = { "compute", "vertex", "pixel", "domain", "hull", "geometry", "miss", "closest_hit", "any_hit", "raygen", "amplification", "mesh", "shader", diff --git a/sources/Prism/Main.cpp b/sources/Prism/Main.cpp index 96d1b89fb..c7e8e6ef0 100644 --- a/sources/Prism/Main.cpp +++ b/sources/Prism/Main.cpp @@ -535,6 +535,26 @@ int main(int argc, char** argv) if (argc > 1 && std::string_view(argv[1]) == "--lsp") return run_lsp(); + // `prismc --check a.prism b.prism`: parse only (no validation, nothing generated), + // for working on the grammar. + if (argc > 1 && std::string_view(argv[1]) == "--check") + { + for (int i = 2; i < argc; ++i) + { + try + { + parse(std::filesystem::path(argv[i]).wstring()); + } + catch (std::exception& e) + { + diagnostics().error(::SourceLocation{ argv[i] }, e.what()); + } + } + + diagnostics().print(); + return diagnostics().empty() ? 0 : 1; + } + std::map user_lists; int result = 0; diff --git a/sources/Prism/Parsed.h b/sources/Prism/Parsed.h index f011b1c3d..da69e09c5 100644 --- a/sources/Prism/Parsed.h +++ b/sources/Prism/Parsed.h @@ -1049,7 +1049,7 @@ struct Parsed : public parsed_type my_container pipelines; my_container enums; - // Top-level `const Name = value;` declarations (Prism.g4's const_definition). + // Top-level `const Name = value;` declarations (PrismGrammar.h's const_definition). // Reuses `option`'s existing name+ValueAtom shape rather than a bespoke // struct -- a const's value supports exactly the same literal/owner-ref/ // raw forms a bind_option's value already does. diff --git a/sources/Prism/Parsing.cpp b/sources/Prism/Parsing.cpp index 8c3a0510a..931db462a 100644 --- a/sources/Prism/Parsing.cpp +++ b/sources/Prism/Parsing.cpp @@ -1,48 +1,102 @@ import Core; -import antlr4; -#undef EOF -#include ".antlr/PrismLexer.h" -#include ".antlr/PrismParser.h" -#include ".antlr/PrismBaseListener.h" -#include ".antlr/PrismBaseVisitor.h" - -using namespace antlr4; + #include "Parsing.h" #include "Diagnostics.h" +#include "PrismAst.h" -// ANTLR's default listener prints to stderr and then recovers, so a malformed -// .prism would otherwise yield a half-built model that generates plausible output. -class CollectingErrorListener : public BaseErrorListener -{ - std::string file; - -public: - explicit CollectingErrorListener(std::string file) : file(std::move(file)) {} - - void syntaxError(Recognizer*, Token*, size_t line, size_t column, const std::string& msg, std::exception_ptr) override - { - diagnostics().error(SourceLocation{ file, line, column + 1 }, msg); - } -}; +using Ast = PrismNode; -class TreeShapeListener : public PrismBaseListener +// Walks the AST in source order and builds the Parsed model. Every rule of the +// grammar is an AST node, so handlers fire in source order: `enter_x` before a +// node's children, `exit_x` after. +class TreeShapeListener { public: Parsed& parsed; std::string file; + const std::string& source; // the buffer that was parsed; token views point into it - TreeShapeListener(Parsed& parsed, std::string file) : parsed(parsed), file(std::move(file)) + TreeShapeListener(Parsed& parsed, std::string file, const std::string& source) + : parsed(parsed), file(std::move(file)), source(source) { parsed.loc.file = this->file; setup_elem(parsed); } - void stamp(antlr4::ParserRuleContext* ctx) + void walk(const Ast& node) + { + if (!enter(node)) + return; // a rejected statement: its subtree is skipped, and so is its leave() + + for (const auto& child : node.nodes) + walk(*child); + leave(node); + } + + // ---- AST access --------------------------------------------------------- + + static void collect_text(const Ast& node, std::string& out) { - auto* start = ctx->getStart(); - elems.back().elem->loc = SourceLocation{ file, start->getLine(), start->getCharPositionInLine() + 1 }; + if (node.is_token) + out += node.token; + else + for (const auto& child : node.nodes) + collect_text(*child, out); } + // The concatenated token texts: whitespace and comments between tokens are + // not part of it. + static std::string text_of(const Ast& node) + { + std::string out; + collect_text(node, out); + return out; + } + + static const Ast* child_of(const Ast& node, std::string_view name) + { + for (const auto& child : node.nodes) + if (child->name == name) + return child.get(); + return nullptr; + } + + static const Ast& require_child(const Ast& node, std::string_view name) + { + if (auto* c = child_of(node, name)) + return *c; + throw std::logic_error(std::format("internal: {} has no {}", node.name, name)); + } + + static const Ast* first_leaf(const Ast& node) + { + const Ast* n = &node; + while (!n->is_token) + { + if (n->nodes.empty()) + return nullptr; + n = n->nodes.front().get(); + } + return n; + } + + SourceLocation loc_of(const Ast& node, size_t shift = 0) const + { + return SourceLocation{ file, node.line, node.column + shift }; + } + + size_t offset_of(const char* p) const + { + return static_cast(p - source.data()); + } + + void stamp(const Ast& ctx) + { + elems.back().elem->loc = loc_of(ctx); + } + + // ---- element stack ------------------------------------------------------ + struct elem_info { parsed_type* elem; @@ -121,31 +175,165 @@ class TreeShapeListener : public PrismBaseListener loc.file, loc.line, loc.column, typeid(T).name())); } -#define GENERATE(x) \ - virtual void exit##x##(PrismParser::##x##Context * ctx) override { \ - end_elem();\ - }\ - virtual void enter##x##(PrismParser::##x##Context* ctx) override { \ - enter_body_##x(ctx);\ - stamp(ctx);\ - }\ - void enter_body_##x(PrismParser::##x##Context* ctx) + // ---- dispatch ----------------------------------------------------------- + // A rule listed here must have the matching handler below, and a handler + // that is not listed is never called. +#define GENERATED_RULES(X) \ + X(layout_definition) X(table_definition) X(const_definition) X(slot_declaration) X(value_declaration) \ + X(option) X(sampler_declaration) X(rt_definition) X(rt_color_declaration) X(rt_ds_declaration) \ + X(compute_pso_definition) X(graphics_pso_definition) X(rtx_pso_definition) X(workgraph_pso_definition) \ + X(node_definition) X(node_param) X(rtx_pass_definition) X(rtx_raygen_definition) X(root_sig) X(shader) \ + X(options_assign) X(define_declaration) X(rtv_formats_declaration) X(blends_declaration) X(pso_param) \ + X(array_value_holder) X(flag_value_holder) X(view_definition) X(pass_definition) X(view_declaration) \ + X(pipeline_definition) X(pipeline_stat) X(enum_definition) X(enum_value_declaration) -#define EXIT(x) \ - virtual void exit##x##(PrismParser::##x##Context * ctx) override +#define ENTER_ONLY_RULES(X) \ + X(name_id) X(shader_path) X(inherit_id) X(class_no_template) X(owner_id) X(template_id) X(value_id) \ + X(raw_value) X(cond_term) X(call_arg) X(paren_group) X(pso_param_id) X(node_param_id) X(array) X(pointer) \ + X(array_count_id) X(insert_block) X(shader_type) X(template_nested) + +#define ENTER_AND_EXIT_RULES(X) X(namespace_header) X(function_definition) X(node_output_decl) + +#define EXIT_ONLY_RULES(X) X(namespace_definition) X(call) X(paren_group) + + // All PSO kinds share one statement list in the grammar; this is which statements + // each kind actually takes. + struct PsoKind + { + unsigned tag; + const char* keyword; + std::vector allowed; + }; + + static const PsoKind* pso_kind_of(unsigned tag) + { + static const PsoKind kinds[] = { + { prism_tag("compute_pso_definition"), "ComputePSO", + { prism_tag("root_sig"), prism_tag("shader"), prism_tag("define_declaration") } }, + { prism_tag("graphics_pso_definition"), "GraphicsPSO", + { prism_tag("root_sig"), prism_tag("shader"), prism_tag("define_declaration"), + prism_tag("rtv_formats_declaration"), prism_tag("blends_declaration"), prism_tag("pso_param") } }, + { prism_tag("rtx_pso_definition"), "RaytracePSO", { prism_tag("root_sig") } }, + { prism_tag("workgraph_pso_definition"), "WorkgraphPSO", + { prism_tag("root_sig"), prism_tag("shader"), prism_tag("define_declaration"), prism_tag("node_definition") } }, + { prism_tag("rtx_pass_definition"), "RaytracePass", { prism_tag("shader"), prism_tag("pso_param") } }, + { prism_tag("rtx_raygen_definition"), "RaytraceRaygen", { prism_tag("shader") } }, + }; + for (const auto& k : kinds) + if (k.tag == tag) + return &k; + return nullptr; + } -#define ENTER(x) \ - virtual void enter##x##(PrismParser::##x##Context* ctx) override + // The innermost PSO definition being walked, and its name for messages. + struct OpenPso + { + const PsoKind* kind; + std::string name; + }; + std::vector open_pso; + static const Ast* find_descendant(const Ast& node, std::string_view name) + { + for (const auto& child : node.nodes) + { + if (child->name == name) + return child.get(); + if (auto* found = find_descendant(*child, name)) + return found; + } + return nullptr; + } - ENTER(Namespace_header) + // Returns false when the node is a statement its PSO does not take: it is + // reported and the walk skips it. + bool allowed_in_pso(const Ast& n) + { + if (open_pso.empty()) + return true; + + const char* statement = nullptr; + switch (n.tag) + { + case prism_tag("root_sig"): statement = "root"; break; + case prism_tag("shader"): statement = "shader"; break; + case prism_tag("define_declaration"): statement = "define"; break; + case prism_tag("rtv_formats_declaration"): statement = "rtv"; break; + case prism_tag("blends_declaration"): statement = "blend"; break; + case prism_tag("pso_param"): statement = ""; break; + case prism_tag("node_definition"): statement = "Node"; break; + default: return true; + } + + const OpenPso& pso = open_pso.back(); + if (std::find(pso.kind->allowed.begin(), pso.kind->allowed.end(), n.tag) != pso.kind->allowed.end()) + return true; + + std::string what = statement; + if (n.tag == prism_tag("pso_param")) + if (auto* id = find_descendant(n, "pso_param_id")) + what = text_of(*id); + + diagnostics().error(loc_of(n), std::format("'{}' is not allowed in {} '{}'", what, pso.kind->keyword, pso.name)); + return false; + } + + bool enter(const Ast& n) + { + if (auto* kind = pso_kind_of(n.tag)) + { + auto* name = child_of(n, "name_id"); + open_pso.push_back({ kind, name ? text_of(*name) : std::string() }); + } + else if (!allowed_in_pso(n)) + return false; + + switch (n.tag) + { +#define CASE_GENERATED(r) case prism_tag(#r): enter_body_##r(n); stamp(n); break; +#define CASE_ENTER(r) case prism_tag(#r): enter_##r(n); break; + GENERATED_RULES(CASE_GENERATED) + ENTER_ONLY_RULES(CASE_ENTER) + ENTER_AND_EXIT_RULES(CASE_ENTER) +#undef CASE_GENERATED +#undef CASE_ENTER + default: + break; + } + return true; + } + + void leave(const Ast& n) + { + if (pso_kind_of(n.tag)) + open_pso.pop_back(); + + switch (n.tag) + { +#define CASE_GENERATED(r) case prism_tag(#r): end_elem(); break; +#define CASE_EXIT(r) case prism_tag(#r): exit_##r(n); break; + GENERATED_RULES(CASE_GENERATED) + ENTER_AND_EXIT_RULES(CASE_EXIT) + EXIT_ONLY_RULES(CASE_EXIT) +#undef CASE_GENERATED +#undef CASE_EXIT + default: + break; + } + } + +#define GENERATE(x) void enter_body_##x([[maybe_unused]] const Ast& ctx) +#define EXIT(x) void exit_##x([[maybe_unused]] const Ast& ctx) +#define ENTER(x) void enter_##x([[maybe_unused]] const Ast& ctx) + + ENTER(namespace_header) { setup_map(get_elem().namespaces); stamp(ctx); } - EXIT(Namespace_header) + EXIT(namespace_header) { auto& ns = get_elem(); ns.path = ns.ns.empty() ? ns.name : ns.ns + "::" + ns.name; @@ -153,57 +341,56 @@ class TreeShapeListener : public PrismBaseListener ns_stack.push_back(ns.path); } - EXIT(Namespace_definition) + EXIT(namespace_definition) { ns_stack.pop_back(); } - GENERATE(Layout_definition) + GENERATE(layout_definition) { setup_map(get_elem().layouts); } - GENERATE(Table_definition) + GENERATE(table_definition) { setup_map(get_elem().tables); } - GENERATE(Const_definition) + GENERATE(const_definition) { setup_map(get_elem().consts); } - ENTER(Function_definition) + ENTER(function_definition) { setup_list(get_elem().functions); stamp(ctx); } - EXIT(Function_definition) + EXIT(function_definition) { auto& fn = get_elem(); - auto* input = ctx->getStart()->getInputStream(); - auto text = [&](size_t a, size_t b) { return input->getText(antlr4::misc::Interval(a, b)); }; - auto* params = ctx->function_params(); - if (params->getStop() && params->getStop()->getStopIndex() + 1 > params->getStart()->getStartIndex()) - fn.params = text(params->getStart()->getStartIndex(), params->getStop()->getStopIndex()); + // Token views are exact; a function_params token has no leading + // whitespace (the `(` before it skipped it) but can carry trailing + // whitespace up to the `)`. + std::string_view params = require_child(ctx, "function_params").token; + while (!params.empty() && std::isspace(static_cast(params.back()))) + params.remove_suffix(1); + if (!params.empty()) + fn.params = std::string(params); // From the start of the return type's line, so the pasted text keeps the // indentation its first line was written with. - size_t begin = ctx->type_id()->getStart()->getStartIndex(); + size_t begin = offset_of(first_leaf(require_child(ctx, "type_id"))->token.data()); size_t line_start = begin; - while (line_start > 0) - { - std::string prev = text(line_start - 1, line_start - 1); - if (prev != " " && prev != "\t") - break; + while (line_start > 0 && (source[line_start - 1] == ' ' || source[line_start - 1] == '\t')) --line_start; - } - fn.source = text(line_start, ctx->getStop()->getStopIndex()); - auto* body = ctx->FUNC_BODY()->getSymbol(); - fn.body_loc = SourceLocation{ file, body->getLine(), body->getCharPositionInLine() + 1 }; + const Ast& body = require_child(ctx, "FUNC_BODY"); + size_t end = offset_of(body.token.data()) + body.token.size(); + fn.source = source.substr(line_start, end - line_start); + fn.body_loc = loc_of(body); end_elem(); @@ -212,37 +399,37 @@ class TreeShapeListener : public PrismBaseListener get_elem
().hlsl += "\n" + fn.source + "\n"; } - GENERATE(Slot_declaration) + GENERATE(slot_declaration) { setup_map(get_elem().slots); } - GENERATE(Value_declaration) + GENERATE(value_declaration) { setup_list(get_elem
().values); } - GENERATE(Option) + GENERATE(option) { setup_map(get_elem().options); } - GENERATE(Sampler_declaration) + GENERATE(sampler_declaration) { setup_map(get_elem().samplers); } - GENERATE(Rt_definition) + GENERATE(rt_definition) { setup_map(get_elem().rt); } - GENERATE(Rt_color_declaration) + GENERATE(rt_color_declaration) { setup_list(get_elem().rtvs); } - GENERATE(Rt_ds_declaration) + GENERATE(rt_ds_declaration) { auto& owner = get_elem().dsv; ASSERT(!owner); @@ -252,38 +439,38 @@ class TreeShapeListener : public PrismBaseListener } - GENERATE(Compute_pso_definition) + GENERATE(compute_pso_definition) { setup_map(get_elem().compute_pso); } - GENERATE(Graphics_pso_definition) + GENERATE(graphics_pso_definition) { setup_map(get_elem().graphics_pso); } - GENERATE(Rtx_pso_definition) + GENERATE(rtx_pso_definition) { setup_map(get_elem().raytrace_pso); } - GENERATE(Workgraph_pso_definition) + GENERATE(workgraph_pso_definition) { setup_map(get_elem().workgraph_pso); } - GENERATE(Node_definition) + GENERATE(node_definition) { setup_map(get_elem().nodes); } - ENTER(Node_output_decl) + ENTER(node_output_decl) { setup_list(get_elem().outputs); stamp(ctx); } - EXIT(Node_output_decl) + EXIT(node_output_decl) { auto& output = get_elem(); if (auto* opt = output.find_option("MaxRecords")) @@ -291,128 +478,134 @@ class TreeShapeListener : public PrismBaseListener end_elem(); } - GENERATE(Node_param) + GENERATE(node_param) { setup_map(get_elem().params); } // index is assigned after all files are merged (assign_rtx_ids in Main.cpp). - GENERATE(Rtx_pass_definition) + GENERATE(rtx_pass_definition) { setup_map(get_elem().raytrace_pass); } - GENERATE(Rtx_raygen_definition) + GENERATE(rtx_raygen_definition) { setup_map(get_elem().raytrace_gen); } - GENERATE(Root_sig) + GENERATE(root_sig) { setup_elem(get_elem().root_sig); } - GENERATE(Shader) + GENERATE(shader) { setup_map(get_elem().shaders); } - GENERATE(Options_assign) + GENERATE(options_assign) { auto& owner = get_elem