Designing a SystemVerilog Language Server
<h2 class="wp-block-heading" id="h-background-hrt-s-hardware-tooling-stack">Background: HRT’s Hardware Tooling Stack</h2> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph">At HRT, pushing technical boundaries often means moving beyond the constraints of standard software. Some of the ways we accomplish this are by deploying FPGA and ASIC solutions which allow us to reach latency and throughput levels unattainable with general-purpose CPUs. We build the custom logic needed for these platforms using <a href="https://en.wikipedia.org/wiki/SystemVerilog">SystemVerilog</a>.</p> <p class="wp-block-paragraph">The hardware workflow relies on simulators to test the designs and synthesizers to ‘compile’ designs onto hardware. Our workflow uses a mix of open source and proprietary tools. Historically, most of these tools have been costly and proprietary – in the past we even had to pay for software compilers. While open source tooling for software has evolved and matured quite a bit over the last few decades, open source hardware tooling has developed at a slower pace. This has led to many issues:</p> <ul class="wp-block-list"> <li>Limited simulator licences make CI nearly impossible</li> <li>No free and widely used linter, formatter, language server, etc.</li> <li>Different proprietary tools accept vastly different language constructs, resulting in many tool-dependent macros to achieve the same thing</li> </ul> <p class="wp-block-paragraph">We’re eager to address these issues by adopting, improving upon, and adding to the open source hardware tools. For Verilator, this means bug fixes and improvements to the open source simulator. For Cocotb, this means actively maintaining and improving that testing library, and notably increasing the parity between Verilator and proprietary simulators such that the same tests work on both simulators. Utilizing these tools allows our hardware development flow to behave more like a cohesive part of our overall software team, and also allows us to use the same build and test tools for efficient CI and share testing workflows.</p> <p class="wp-block-paragraph">It may seem counterintuitive for a trading firm, typically protective of its intellectual property, to contribute to and publish open-source projects. However, we believe it is vital to the long term success of software projects to provide extra validation, opinions, and contributions that move these projects forward. We’re also very happy to lower the barrier of entry for hardware development and improve the lives of hardware developers around the world.</p> <p class="wp-block-paragraph">Proprietary tools still have their place in our workflow. For example, proprietary simulators tend to have faster incremental builds, which many hardware designers need to utilize to achieve a quick iteration loop. Our workflow that we’ve developed allows hardware designers to simply flip a command line switch to run the same exact tests on either Verilator or a proprietary simulator. This allows Verilator to catch CI regressions quickly by running thousands of tests in parallel, while also allowing for developers to use a proprietary simulator for rapid debugging and testing of a design.</p> <p class="wp-block-paragraph"></p> <h2 class="wp-block-heading" id="h-what-is-a-language-server">What is a language server?</h2> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph">The project we built and released is a <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification">language server</a>, which is a tool that provides intelligent code navigation and instant feedback into popular editors like VS Code, Vim, and Emacs for a particular language. It’s a protocol based on the VSCode api, allowing the server to be written in any language, not just typescript. The server is based on the Slang project, which is a SystemVerilog frontend and linter. Slang was created by our own Mike Popoloski, and he’s continued to develop features and maintain that project. According to the <a href="https://github.com/chipsalliance/sv-tests">ChipsAlliance test suite</a>, Slang is the fastest and most compliant SystemVerilog frontend, which in hardware compilers is the engine that parses code, checks for errors, and builds the design hierarchy.</p> <p class="wp-block-paragraph"></p> <h2 class="wp-block-heading" id="h-why-build-a-language-server">Why build a language server?</h2> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph">As part of my role, I need to read and understand parts of our hardware codebase. It irked me (and others on my team) every time I had to scour our codebase for declarations when seeking to understand a piece of code. I couldn’t even imagine how much time our team would save if we had proper editor features like we did in other languages, where a simple cmd+click would bring you to a symbol definition.</p> <p class="wp-block-paragraph">I started exploring this space by contributing to the most popular vscode extension at the time, first by adding slang linting. This closed a critical feedback loop in our development: users could now immediately see when they misspelled a variable or missed a semicolon, rather than having to switch to a terminal and fix those after running a build. I continued with contributions to the vscode extension, adding cross-file goto-definition and completion support. However, due to limitations in the underlying parser, I hit a wall in developing new features. In order to progress, we needed to build a proper language server using slang, which would be faster, more accurate, and work on any editor.</p> <p class="wp-block-paragraph">Luckily, at HRT we have the ability to work on greenfield projects through a program called “Surge”, in which groups of engineers choose to come together to explore and build new projects. Both our FPGA team and the Slang library were first created as Surge projects many years ago. Last year, we created slang-server during Surge, and we’re proud to have recently <a href="https://github.com/hudson-trading/slang-server" type="link" id="https://github.com/hudson-trading/slang-server">open sourced it.</a></p> <p class="wp-block-paragraph">In the rest of this article we’re going to explore some technical aspects of the server. First we’re going to explore the constructs that the Slang library provides and how we used those constructs to implement some core language features. Then, we’re going to look at optimizations that were made for the indexer’s latency and memory usage, which is a critical part of the language server that collects workspace-wide symbols when the editor is opened.</p> <p class="wp-block-paragraph"></p> <h2 class="wp-block-heading">What the Slang Library Provides</h2> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph">Slang works in two main passes: parsing and elaboration.</p> <p class="wp-block-paragraph"><strong>Phase 1: Parsing</strong></p> <p class="wp-block-paragraph">The first phase of the process is <strong>Parsing</strong>, composed of <strong>Lexing</strong>, <strong>Preprocessing</strong> and <strong>Parsing</strong>. <strong>Lexing</strong> breaks the raw text file into individual “words” or tokens. “Trivia” such as comments, whitespace, and tool pragmas are attached to the token that immediately follows them. Next, <strong>Preprocessing</strong> runs a preprocessor similar to those found in C and C++. This step expands macros, follows ifdef statements, and expands <code>include directives</code>. Finally, the main <strong>Parsing</strong> step arranges all of these processed tokens into a syntax tree, which is a hierarchical structure of syntax nodes, with each node containing tokens and other syntax nodes.</p> <p class="wp-block-paragraph"><strong>Phase 2: Elaboration </strong></p> <p class="wp-block-paragraph">Slang walks through the set of syntax trees starting at a top level module. While doing so it calculates parameter values (e.g., “This RAM has a width of 64 bits”) and connects module instances to one another to form the final design. Since modules can be parameterized like C++ templates, Slang can’t just read the code once; it has to “build” the design to see what it actually looks like, and check for issues like width mismatches in each parameterization. During this process it converts the syntax tree into symbols – abstract objects that represent the definitions of your modules, variables, and functions.</p> <p class="wp-block-paragraph">When using the <code>slang</code> binary (the linter), it runs this entire process to print <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#diagnostic">diagnostics</a> (errors and warnings) to your terminal. The <code>slang-server</code>, on the other hand, presents these diagnostics directly to an IDE over the <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/">Language Server Protocol</a>, providing useful info to users as they type.</p> <p class="wp-block-paragraph">Here is an illustration of some of the information that we get from Parsing and Elaboration, created with Slang’s <code>--cst-json</code> and <code>--ast-json</code> commands.</p> <p class="wp-block-paragraph"></p> <div data-wp-context="{ "autoclose": true, "accordionItems": [] }" data-wp-interactive="core/accordion" role="group" class="wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow"> <div data-wp-class--is-open="state.isOpen" data-wp-context="{ "id": "accordion-item-2", "openByDefault": false }" data-wp-init="callbacks.initAccordionItems" data-wp-on-window--hashchange="callbacks.hashChange" class="wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow"> <h3 class="wp-block-accordion-heading has-text-color has-background has-link-color has-medium-font-size wp-elements-d12cd949cd9e648ceb42dc842a57726f" style="color:#151526;background-color:#eeeff8"><button aria-expanded="false" aria-controls="accordion-item-2-panel" data-wp-bind--aria-expanded="state.isOpen" data-wp-on--click="actions.toggle" data-wp-on--keydown="actions.handleKeyDown" id="accordion-item-2" type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title">SystemVerilog Input</span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3> <div inert="" aria-labelledby="accordion-item-2" data-wp-bind--inert="!state.isOpen" id="accordion-item-2-panel" role="region" class="wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow"> <div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers verilogcode" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(12px, .75rem, 18px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .75rem);line-height:clamp(16px, 1rem, 24px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#292D3E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly="">module Comparator ( input logic [3:0] count, input logic [3:0] target, output logic match ); // always_comb automatically triggers whenever 'count' or 'target' changes always_comb begin if (count == target) match = 1'b1; else match = 1'b0; end endmodule module CounterTop ( input logic clk, input logic rst_n, // Active-low reset input logic [3:0] limit, output logic at_limit ); logic [3:0] current_count; // always_ff describes sequential logic (flip-flops) // It requires a sensitivity list, usually the clock edge always_ff @(posedge clk or negedge rst_n) begin if (!rst_n) begin current_count <= 4'b0000; end else begin current_count <= current_count + 1'b1; end end // Instantiate the combinational module Comparator comp_inst ( .count(current_count), .target(limit), .match(at_limit) ); endmodule</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #89DDFF; font-style: italic">module</span><span style="color: #BABED8"> </span><span style="color: #FFCB6B">Comparator</span><span style="color: #BABED8"> (</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #FFCB6B">input</span><span style="color: #BABED8"> </span><span style="color: #C792EA">logic</span><span style="color: #BABED8"> [</span><span style="color: #F78C6C">3</span><span style="color: #89DDFF">:</span><span style="color: #F78C6C">0</span><span style="color: #BABED8">] count,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #FFCB6B">input</span><span style="color: #BABED8"> </span><span style="color: #C792EA">logic</span><span style="color: #BABED8"> [</span><span style="color: #F78C6C">3</span><span style="color: #89DDFF">:</span><span style="color: #F78C6C">0</span><span style="color: #BABED8">] target,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #FFCB6B">output</span><span style="color: #BABED8"> </span><span style="color: #C792EA">logic</span><span style="color: #BABED8"> match</span></span> <span class="line"><span style="color: #BABED8">);</span></span> <span class="line"></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #676E95; font-style: italic">// always_comb automatically triggers whenever 'count' or 'target' changes</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">always_comb</span><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">begin</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">if</span><span style="color: #BABED8"> (count </span><span style="color: #89DDFF">==</span><span style="color: #BABED8"> target)</span></span> <span class="line"><span style="color: #BABED8"> match </span><span style="color: #89DDFF">=</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">1'b1</span><span style="color: #BABED8">;</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">else</span></span> <span class="line"><span style="color: #BABED8"> match </span><span style="color: #89DDFF">=</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">1'b0</span><span style="color: #BABED8">;</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">end</span></span> <span class="line"></span> <span class="line"><span style="color: #89DDFF; font-style: italic">endmodule</span></span> <span class="line"></span> <span class="line"><span style="color: #89DDFF; font-style: italic">module</span><span style="color: #BABED8"> </span><span style="color: #FFCB6B">CounterTop</span><span style="color: #BABED8"> (</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #FFCB6B">input</span><span style="color: #BABED8"> </span><span style="color: #C792EA">logic</span><span style="color: #BABED8"> clk,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #FFCB6B">input</span><span style="color: #BABED8"> </span><span style="color: #C792EA">logic</span><span style="color: #BABED8"> rst_n, </span><span style="color: #676E95; font-style: italic">// Active-low reset</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #FFCB6B">input</span><span style="color: #BABED8"> </span><span style="color: #C792EA">logic</span><span style="color: #BABED8"> [</span><span style="color: #F78C6C">3</span><span style="color: #89DDFF">:</span><span style="color: #F78C6C">0</span><span style="color: #BABED8">] limit,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #FFCB6B">output</span><span style="color: #BABED8"> </span><span style="color: #C792EA">logic</span><span style="color: #BABED8"> at_limit</span></span> <span class="line"><span style="color: #BABED8">);</span></span> <span class="line"></span> <span class="line"><span style="color: #C792EA"> logic</span><span style="color: #BABED8"> [</span><span style="color: #F78C6C">3</span><span style="color: #89DDFF">:</span><span style="color: #F78C6C">0</span><span style="color: #BABED8">] current_count;</span></span> <span class="line"></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #676E95; font-style: italic">// always_ff describes sequential logic (flip-flops)</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #676E95; font-style: italic">// It requires a sensitivity list, usually the clock edge</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">always_ff</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">@</span><span style="color: #BABED8">(</span><span style="color: #F78C6C">posedge</span><span style="color: #BABED8"> clk </span><span style="color: #89DDFF">or</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">negedge</span><span style="color: #BABED8"> rst_n) </span><span style="color: #89DDFF; font-style: italic">begin</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">if</span><span style="color: #BABED8"> (</span><span style="color: #89DDFF">!</span><span style="color: #BABED8">rst_n) </span><span style="color: #89DDFF; font-style: italic">begin</span></span> <span class="line"><span style="color: #BABED8"> current_count </span><span style="color: #89DDFF"><=</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">4'b0000</span><span style="color: #BABED8">;</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">end</span><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">else</span><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">begin</span></span> <span class="line"><span style="color: #BABED8"> current_count </span><span style="color: #89DDFF"><=</span><span style="color: #BABED8"> current_count </span><span style="color: #89DDFF">+</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">1'b1</span><span style="color: #BABED8">;</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">end</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">end</span></span> <span class="line"></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #676E95; font-style: italic">// Instantiate the combinational module</span></span> <span class="line"><span style="color: #BABED8"> Comparator </span><span style="color: #FFCB6B">comp_inst</span><span style="color: #BABED8"> (</span></span> <span class="line"><span style="color: #BABED8"> .</span><span style="color: #82AAFF">count</span><span style="color: #BABED8">(current_count),</span></span> <span class="line"><span style="color: #BABED8"> .</span><span style="color: #82AAFF">target</span><span style="color: #BABED8">(limit),</span></span> <span class="line"><span style="color: #BABED8"> .</span><span style="color: #82AAFF">match</span><span style="color: #BABED8">(at_limit)</span></span> <span class="line"><span style="color: #BABED8"> );</span></span> <span class="line"></span> <span class="line"><span style="color: #89DDFF; font-style: italic">endmodule</span></span></code></pre></div> </div> </div> </div> <p class="wp-block-paragraph"></p> <div data-wp-context="{ "autoclose": false, "accordionItems": [] }" data-wp-interactive="core/accordion" role="group" class="wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow"> <div data-wp-class--is-open="state.isOpen" data-wp-context="{ "id": "accordion-item-3", "openByDefault": false }" data-wp-init="callbacks.initAccordionItems" data-wp-on-window--hashchange="callbacks.hashChange" class="wp-block-accordion-item has-background is-layout-flow wp-block-accordion-item-is-layout-flow" style="background-color:#eeeff8"> <h3 class="wp-block-accordion-heading has-text-color has-background has-link-color has-medium-font-size wp-elements-40dd5e9db03f4c88e121c147bd2b1bd0" style="color:#151526;background-color:#eeeff8"><button aria-expanded="false" aria-controls="accordion-item-3-panel" data-wp-bind--aria-expanded="state.isOpen" data-wp-on--click="actions.toggle" data-wp-on--keydown="actions.handleKeyDown" id="accordion-item-3" type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title">Parse Pass Output: Concrete Syntax Tree</span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3> <div inert="" aria-labelledby="accordion-item-3" data-wp-bind--inert="!state.isOpen" id="accordion-item-3-panel" role="region" class="wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow"> <div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers verilogcode" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(12px, .75rem, 18px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(4 * 0.6 * .75rem);line-height:clamp(16px, 1rem, 24px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#292D3E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly="">{ "syntaxTrees": [ { "kind": "SyntaxTree", "root": { "kind": "CompilationUnit", "members": [ { "kind": "ModuleDeclaration", "header": { "kind": "ModuleHeader", "moduleKeyword": { "kind": "ModuleKeyword", "text": "module" }, "name": { "kind": "Identifier", "text": "Comparator", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "ports": { "kind": "AnsiPortList", "openParen": { "kind": "OpenParenthesis", "text": "(", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "ports": [ { "kind": "ImplicitAnsiPort", "header": { "kind": "VariablePortHeader", "direction": { "kind": "InputKeyword", "text": "input", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "dataType": { "kind": "LogicType", "keyword": { "kind": "LogicKeyword", "text": "logic", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "dimensions": [ { "kind": "VariableDimension", "openBracket": { "kind": "OpenBracket", "text": "[", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "specifier": { "kind": "RangeDimensionSpecifier", "selector": { "kind": "SimpleRangeSelect", "left": { "kind": "IntegerLiteralExpression", "literal": { "kind": "IntegerLiteral", "text": "3" } }, "range": { "kind": "Colon", "text": ":" }, "right": { "kind": "IntegerLiteralExpression", "literal": { "kind": "IntegerLiteral", "text": "0" } } } }, "closeBracket": { "kind": "CloseBracket", "text": "]" } } ] } }, "declarator": { "kind": "Declarator", "name": { "kind": "Identifier", "text": "count", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, { "kind": "Comma", "text": "," }, { "kind": "ImplicitAnsiPort", "header": { "kind": "VariablePortHeader", "direction": { "kind": "InputKeyword", "text": "input", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "dataType": { "kind": "LogicType", "keyword": { "kind": "LogicKeyword", "text": "logic", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "dimensions": [ { "kind": "VariableDimension", "openBracket": { "kind": "OpenBracket", "text": "[", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "specifier": { "kind": "RangeDimensionSpecifier", "selector": { "kind": "SimpleRangeSelect", "left": { "kind": "IntegerLiteralExpression", "literal": { "kind": "IntegerLiteral", "text": "3" } }, "range": { "kind": "Colon", "text": ":" }, "right": { "kind": "IntegerLiteralExpression", "literal": { "kind": "IntegerLiteral", "text": "0" } } } }, "closeBracket": { "kind": "CloseBracket", "text": "]" } } ] } }, "declarator": { "kind": "Declarator", "name": { "kind": "Identifier", "text": "target", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, { "kind": "Comma", "text": "," }, { "kind": "ImplicitAnsiPort", "header": { "kind": "VariablePortHeader", "direction": { "kind": "OutputKeyword", "text": "output", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "dataType": { "kind": "LogicType", "keyword": { "kind": "LogicKeyword", "text": "logic", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, "declarator": { "kind": "Declarator", "name": { "kind": "Identifier", "text": "match", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } } ], "closeParen": { "kind": "CloseParenthesis", "text": ")", "trivia": [ { "kind": "EndOfLine", "text": "\n" } ] } }, "semi": { "kind": "Semicolon", "text": ";" } }, "members": [ { "kind": "AlwaysCombBlock", "keyword": { "kind": "AlwaysCombKeyword", "text": "always_comb", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " }, { "kind": "LineComment", "text": "// always_comb automatically triggers whenever 'count' or 'target' changes" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "statement": { "kind": "SequentialBlockStatement", "begin": { "kind": "BeginKeyword", "text": "begin", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "items": [ { "kind": "ConditionalStatement", "ifKeyword": { "kind": "IfKeyword", "text": "if", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "openParen": { "kind": "OpenParenthesis", "text": "(", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "predicate": { "kind": "ConditionalPredicate", "conditions": [ { "kind": "ConditionalPattern", "expr": { "kind": "EqualityExpression", "left": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "count" } }, "operatorToken": { "kind": "DoubleEquals", "text": "==", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "right": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "target", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } } } ] }, "closeParen": { "kind": "CloseParenthesis", "text": ")" }, "statement": { "kind": "ExpressionStatement", "expr": { "kind": "AssignmentExpression", "left": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "match", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } }, "operatorToken": { "kind": "Equals", "text": "=", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "right": { "kind": "IntegerVectorExpression", "size": { "kind": "IntegerLiteral", "text": "1", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "base": { "kind": "IntegerBase", "text": "'b" }, "value": { "kind": "IntegerLiteral", "text": "1" } } }, "semi": { "kind": "Semicolon", "text": ";" } }, "elseClause": { "kind": "ElseClause", "elseKeyword": { "kind": "ElseKeyword", "text": "else", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "clause": { "kind": "ExpressionStatement", "expr": { "kind": "AssignmentExpression", "left": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "match", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } }, "operatorToken": { "kind": "Equals", "text": "=", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "right": { "kind": "IntegerVectorExpression", "size": { "kind": "IntegerLiteral", "text": "1", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "base": { "kind": "IntegerBase", "text": "'b" }, "value": { "kind": "IntegerLiteral", "text": "0" } } }, "semi": { "kind": "Semicolon", "text": ";" } } } } ], "end": { "kind": "EndKeyword", "text": "end", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } } } ], "endmodule": { "kind": "EndModuleKeyword", "text": "endmodule", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "EndOfLine", "text": "\n" } ] } }, { "kind": "ModuleDeclaration", "header": { "kind": "ModuleHeader", "moduleKeyword": { "kind": "ModuleKeyword", "text": "module", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "EndOfLine", "text": "\n" } ] }, "name": { "kind": "Identifier", "text": "CounterTop", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "ports": { "kind": "AnsiPortList", "openParen": { "kind": "OpenParenthesis", "text": "(", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "ports": [ { "kind": "ImplicitAnsiPort", "header": { "kind": "VariablePortHeader", "direction": { "kind": "InputKeyword", "text": "input", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "dataType": { "kind": "LogicType", "keyword": { "kind": "LogicKeyword", "text": "logic", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, "declarator": { "kind": "Declarator", "name": { "kind": "Identifier", "text": "clk", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, { "kind": "Comma", "text": "," }, { "kind": "ImplicitAnsiPort", "header": { "kind": "VariablePortHeader", "direction": { "kind": "InputKeyword", "text": "input", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "dataType": { "kind": "LogicType", "keyword": { "kind": "LogicKeyword", "text": "logic", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, "declarator": { "kind": "Declarator", "name": { "kind": "Identifier", "text": "rst_n", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, { "kind": "Comma", "text": "," }, { "kind": "ImplicitAnsiPort", "header": { "kind": "VariablePortHeader", "direction": { "kind": "InputKeyword", "text": "input", "trivia": [ { "kind": "Whitespace", "text": " " }, { "kind": "LineComment", "text": "// Active-low reset" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "dataType": { "kind": "LogicType", "keyword": { "kind": "LogicKeyword", "text": "logic", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "dimensions": [ { "kind": "VariableDimension", "openBracket": { "kind": "OpenBracket", "text": "[", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "specifier": { "kind": "RangeDimensionSpecifier", "selector": { "kind": "SimpleRangeSelect", "left": { "kind": "IntegerLiteralExpression", "literal": { "kind": "IntegerLiteral", "text": "3" } }, "range": { "kind": "Colon", "text": ":" }, "right": { "kind": "IntegerLiteralExpression", "literal": { "kind": "IntegerLiteral", "text": "0" } } } }, "closeBracket": { "kind": "CloseBracket", "text": "]" } } ] } }, "declarator": { "kind": "Declarator", "name": { "kind": "Identifier", "text": "limit", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, { "kind": "Comma", "text": "," }, { "kind": "ImplicitAnsiPort", "header": { "kind": "VariablePortHeader", "direction": { "kind": "OutputKeyword", "text": "output", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "dataType": { "kind": "LogicType", "keyword": { "kind": "LogicKeyword", "text": "logic", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, "declarator": { "kind": "Declarator", "name": { "kind": "Identifier", "text": "at_limit", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } } ], "closeParen": { "kind": "CloseParenthesis", "text": ")", "trivia": [ { "kind": "EndOfLine", "text": "\n" } ] } }, "semi": { "kind": "Semicolon", "text": ";" } }, "members": [ { "kind": "DataDeclaration", "type": { "kind": "LogicType", "keyword": { "kind": "LogicKeyword", "text": "logic", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "dimensions": [ { "kind": "VariableDimension", "openBracket": { "kind": "OpenBracket", "text": "[", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "specifier": { "kind": "RangeDimensionSpecifier", "selector": { "kind": "SimpleRangeSelect", "left": { "kind": "IntegerLiteralExpression", "literal": { "kind": "IntegerLiteral", "text": "3" } }, "range": { "kind": "Colon", "text": ":" }, "right": { "kind": "IntegerLiteralExpression", "literal": { "kind": "IntegerLiteral", "text": "0" } } } }, "closeBracket": { "kind": "CloseBracket", "text": "]" } } ] }, "declarators": [ { "kind": "Declarator", "name": { "kind": "Identifier", "text": "current_count", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } ], "semi": { "kind": "Semicolon", "text": ";" } }, { "kind": "AlwaysFFBlock", "keyword": { "kind": "AlwaysFFKeyword", "text": "always_ff", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " }, { "kind": "LineComment", "text": "// always_ff describes sequential logic (flip-flops)" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " }, { "kind": "LineComment", "text": "// It requires a sensitivity list, usually the clock edge" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "statement": { "kind": "TimingControlStatement", "timingControl": { "kind": "EventControlWithExpression", "at": { "kind": "At", "text": "@", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "expr": { "kind": "ParenthesizedEventExpression", "openParen": { "kind": "OpenParenthesis", "text": "(" }, "expr": { "kind": "BinaryEventExpression", "left": { "kind": "SignalEventExpression", "edge": { "kind": "PosEdgeKeyword", "text": "posedge" }, "expr": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "clk", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } }, "operatorToken": { "kind": "OrKeyword", "text": "or", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "right": { "kind": "SignalEventExpression", "edge": { "kind": "NegEdgeKeyword", "text": "negedge", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "expr": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "rst_n", "trivia": [ { "kind": "Whitespace", "text": " " } ] } } } }, "closeParen": { "kind": "CloseParenthesis", "text": ")" } } }, "statement": { "kind": "SequentialBlockStatement", "begin": { "kind": "BeginKeyword", "text": "begin", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "items": [ { "kind": "ConditionalStatement", "ifKeyword": { "kind": "IfKeyword", "text": "if", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "openParen": { "kind": "OpenParenthesis", "text": "(", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "predicate": { "kind": "ConditionalPredicate", "conditions": [ { "kind": "ConditionalPattern", "expr": { "kind": "UnaryLogicalNotExpression", "operatorToken": { "kind": "Exclamation", "text": "!" }, "operand": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "rst_n" } } } } ] }, "closeParen": { "kind": "CloseParenthesis", "text": ")" }, "statement": { "kind": "SequentialBlockStatement", "begin": { "kind": "BeginKeyword", "text": "begin", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "items": [ { "kind": "ExpressionStatement", "expr": { "kind": "NonblockingAssignmentExpression", "left": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "current_count", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } }, "operatorToken": { "kind": "LessThanEquals", "text": "<=", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "right": { "kind": "IntegerVectorExpression", "size": { "kind": "IntegerLiteral", "text": "4", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "base": { "kind": "IntegerBase", "text": "'b" }, "value": { "kind": "IntegerLiteral", "text": "0000" } } }, "semi": { "kind": "Semicolon", "text": ";" } } ], "end": { "kind": "EndKeyword", "text": "end", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } }, "elseClause": { "kind": "ElseClause", "elseKeyword": { "kind": "ElseKeyword", "text": "else", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "clause": { "kind": "SequentialBlockStatement", "begin": { "kind": "BeginKeyword", "text": "begin", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "items": [ { "kind": "ExpressionStatement", "expr": { "kind": "NonblockingAssignmentExpression", "left": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "current_count", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } }, "operatorToken": { "kind": "LessThanEquals", "text": "<=", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "right": { "kind": "AddExpression", "left": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "current_count", "trivia": [ { "kind": "Whitespace", "text": " " } ] } }, "operatorToken": { "kind": "Plus", "text": "+", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "right": { "kind": "IntegerVectorExpression", "size": { "kind": "IntegerLiteral", "text": "1", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "base": { "kind": "IntegerBase", "text": "'b" }, "value": { "kind": "IntegerLiteral", "text": "1" } } } }, "semi": { "kind": "Semicolon", "text": ";" } } ], "end": { "kind": "EndKeyword", "text": "end", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } } } } ], "end": { "kind": "EndKeyword", "text": "end", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } } } }, { "kind": "HierarchyInstantiation", "type": { "kind": "Identifier", "text": "Comparator", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " }, { "kind": "LineComment", "text": "// Instantiate the combinational module" }, { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "instances": [ { "kind": "HierarchicalInstance", "decl": { "kind": "InstanceName", "name": { "kind": "Identifier", "text": "comp_inst", "trivia": [ { "kind": "Whitespace", "text": " " } ] } }, "openParen": { "kind": "OpenParenthesis", "text": "(", "trivia": [ { "kind": "Whitespace", "text": " " } ] }, "connections": [ { "kind": "NamedPortConnection", "dot": { "kind": "Dot", "text": ".", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "name": { "kind": "Identifier", "text": "count" }, "openParen": { "kind": "OpenParenthesis", "text": "(" }, "expr": { "kind": "SimplePropertyExpr", "expr": { "kind": "SimpleSequenceExpr", "expr": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "current_count" } } } }, "closeParen": { "kind": "CloseParenthesis", "text": ")" } }, { "kind": "Comma", "text": "," }, { "kind": "NamedPortConnection", "dot": { "kind": "Dot", "text": ".", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "name": { "kind": "Identifier", "text": "target" }, "openParen": { "kind": "OpenParenthesis", "text": "(" }, "expr": { "kind": "SimplePropertyExpr", "expr": { "kind": "SimpleSequenceExpr", "expr": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "limit" } } } }, "closeParen": { "kind": "CloseParenthesis", "text": ")" } }, { "kind": "Comma", "text": "," }, { "kind": "NamedPortConnection", "dot": { "kind": "Dot", "text": ".", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] }, "name": { "kind": "Identifier", "text": "match" }, "openParen": { "kind": "OpenParenthesis", "text": "(" }, "expr": { "kind": "SimplePropertyExpr", "expr": { "kind": "SimpleSequenceExpr", "expr": { "kind": "IdentifierName", "identifier": { "kind": "Identifier", "text": "at_limit" } } } }, "closeParen": { "kind": "CloseParenthesis", "text": ")" } } ], "closeParen": { "kind": "CloseParenthesis", "text": ")", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "Whitespace", "text": " " } ] } } ], "semi": { "kind": "Semicolon", "text": ";" } } ], "endmodule": { "kind": "EndModuleKeyword", "text": "endmodule", "trivia": [ { "kind": "EndOfLine", "text": "\n" }, { "kind": "EndOfLine", "text": "\n" } ] } } ] } } ] }</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">syntaxTrees</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SyntaxTree</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">root</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CompilationUnit</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">members</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ModuleDeclaration</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ModuleHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">moduleKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ModuleKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">module</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comparator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">ports</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AnsiPortList</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">ports</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ImplicitAnsiPort</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariablePortHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">InputKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">input</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">dataType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">dimensions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariableDimension</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">openBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">[</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">specifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">RangeDimensionSpecifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">selector</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimpleRangeSelect</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteralExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">literal</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">3</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">range</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Colon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">:</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteralExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">literal</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">closeBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">]</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comma</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">,</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ImplicitAnsiPort</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariablePortHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">InputKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">input</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">dataType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">dimensions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariableDimension</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">openBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">[</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">specifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">RangeDimensionSpecifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">selector</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimpleRangeSelect</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteralExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">literal</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">3</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">range</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Colon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">:</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteralExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">literal</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">closeBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">]</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">target</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comma</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">,</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ImplicitAnsiPort</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariablePortHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OutputKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">output</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">dataType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">match</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">semi</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Semicolon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">;</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">members</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AlwaysCombBlock</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AlwaysCombKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">always_comb</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LineComment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">// always_comb automatically triggers whenever 'count' or 'target' changes</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">statement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SequentialBlockStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">begin</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">BeginKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">begin</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">items</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ConditionalStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">ifKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IfKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">if</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">predicate</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ConditionalPredicate</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">conditions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ConditionalPattern</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EqualityExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operatorToken</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">DoubleEquals</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">==</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">target</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">statement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ExpressionStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AssignmentExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">match</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operatorToken</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Equals</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">=</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerVectorExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">size</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">base</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerBase</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">'b</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">value</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">semi</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Semicolon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">;</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">elseClause</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ElseClause</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">elseKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ElseKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">else</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">clause</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ExpressionStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AssignmentExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">match</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operatorToken</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Equals</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">=</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerVectorExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">size</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">base</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerBase</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">'b</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">value</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">semi</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Semicolon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">;</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">end</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">end</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">endmodule</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndModuleKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">endmodule</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ModuleDeclaration</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ModuleHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">moduleKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ModuleKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">module</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CounterTop</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">ports</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AnsiPortList</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">ports</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ImplicitAnsiPort</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariablePortHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">InputKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">input</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">dataType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">clk</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comma</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">,</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ImplicitAnsiPort</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariablePortHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">InputKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">input</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">dataType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">rst_n</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comma</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">,</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ImplicitAnsiPort</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariablePortHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">InputKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">input</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LineComment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">// Active-low reset</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">dataType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">dimensions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariableDimension</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">openBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">[</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">specifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">RangeDimensionSpecifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">selector</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimpleRangeSelect</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteralExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">literal</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">3</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">range</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Colon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">:</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteralExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">literal</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">closeBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">]</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">limit</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comma</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">,</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ImplicitAnsiPort</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">header</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariablePortHeader</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OutputKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">output</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">dataType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">at_limit</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">semi</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Semicolon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">;</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">members</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">DataDeclaration</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">dimensions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">VariableDimension</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">openBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">[</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">specifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">RangeDimensionSpecifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">selector</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimpleRangeSelect</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteralExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">literal</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">3</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">range</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Colon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">:</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteralExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">literal</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">closeBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseBracket</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">]</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">declarators</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Declarator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">current_count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">semi</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Semicolon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">;</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AlwaysFFBlock</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">keyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AlwaysFFKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">always_ff</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LineComment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">// always_ff describes sequential logic (flip-flops)</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LineComment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">// It requires a sensitivity list, usually the clock edge</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">statement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">TimingControlStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">timingControl</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EventControlWithExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">at</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">At</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">@</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ParenthesizedEventExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">BinaryEventExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SignalEventExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">edge</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">PosEdgeKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">posedge</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">clk</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operatorToken</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OrKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">or</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SignalEventExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">edge</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NegEdgeKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">negedge</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">rst_n</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">statement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SequentialBlockStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">begin</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">BeginKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">begin</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">items</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ConditionalStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">ifKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IfKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">if</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">predicate</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ConditionalPredicate</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">conditions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ConditionalPattern</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">UnaryLogicalNotExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operatorToken</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Exclamation</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">!</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operand</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">rst_n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">statement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SequentialBlockStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">begin</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">BeginKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">begin</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">items</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ExpressionStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NonblockingAssignmentExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">current_count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operatorToken</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LessThanEquals</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"><=</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerVectorExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">size</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">4</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">base</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerBase</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">'b</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">value</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">0000</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">semi</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Semicolon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">;</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">end</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">end</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">elseClause</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ElseClause</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">elseKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ElseKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">else</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">clause</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SequentialBlockStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">begin</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">BeginKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">begin</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">items</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ExpressionStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NonblockingAssignmentExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">current_count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operatorToken</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LessThanEquals</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"><=</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AddExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">current_count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operatorToken</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Plus</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">+</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerVectorExpression</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">size</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">base</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerBase</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">'b</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">value</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">semi</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Semicolon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">;</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">end</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">end</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">end</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">end</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">HierarchyInstantiation</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comparator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LineComment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">// Instantiate the combinational module</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">instances</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">HierarchicalInstance</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">decl</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">InstanceName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">comp_inst</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">connections</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedPortConnection</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">dot</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Dot</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">.</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimplePropertyExpr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimpleSequenceExpr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">current_count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comma</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">,</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedPortConnection</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">dot</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Dot</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">.</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">target</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimplePropertyExpr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimpleSequenceExpr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">limit</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comma</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">,</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedPortConnection</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">dot</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Dot</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">.</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">match</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">openParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">OpenParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">(</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimplePropertyExpr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SimpleSequenceExpr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IdentifierName</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Identifier</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">at_limit</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">closeParen</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CloseParenthesis</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">)</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Whitespace</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D"> </span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">semi</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Semicolon</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">;</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">endmodule</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndModuleKeyword</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">endmodule</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">trivia</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EndOfLine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">text</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #BABED8">\n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #89DDFF">}</span></span></code></pre></div> </div> </div> </div> <p class="wp-block-paragraph"></p> <div data-wp-context="{ "autoclose": false, "accordionItems": [] }" data-wp-interactive="core/accordion" role="group" class="wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow"> <div data-wp-class--is-open="state.isOpen" data-wp-context="{ "id": "accordion-item-4", "openByDefault": false }" data-wp-init="callbacks.initAccordionItems" data-wp-on-window--hashchange="callbacks.hashChange" class="wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow"> <h3 class="wp-block-accordion-heading has-text-color has-background has-link-color has-medium-font-size wp-elements-f92ae795b230391951bcabfcfafa6656" style="color:#151526;background-color:#eeeff8"><button aria-expanded="false" aria-controls="accordion-item-4-panel" data-wp-bind--aria-expanded="state.isOpen" data-wp-on--click="actions.toggle" data-wp-on--keydown="actions.handleKeyDown" id="accordion-item-4" type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title">Elaboration Pass Output: Abstract Syntax Tree</span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3> <div inert="" aria-labelledby="accordion-item-4" data-wp-bind--inert="!state.isOpen" id="accordion-item-4-panel" role="region" class="wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow"> <div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers verilogcode" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(12px, .75rem, 18px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(3 * 0.6 * .75rem);line-height:clamp(16px, 1rem, 24px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#292D3E"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly="">{ "design": { "name": "$root", "kind": "Root", "addr": 6308034860160, "members": [ { "name": "", "kind": "CompilationUnit", "addr": 6308035446328 }, { "name": "CounterTop", "kind": "Instance", "addr": 6308035447208, "body": { "name": "CounterTop", "kind": "InstanceBody", "addr": 6308035446624, "members": [ { "name": "clk", "kind": "Port", "addr": 6308035447352, "type": "logic", "direction": "In", "internalSymbol": "6308035447480 clk" }, { "name": "clk", "kind": "Variable", "addr": 6308035447480, "type": "logic", "lifetime": "Static" }, { "name": "rst_n", "kind": "Port", "addr": 6308035447624, "type": "logic", "direction": "In", "internalSymbol": "6308035447752 rst_n" }, { "name": "rst_n", "kind": "Variable", "addr": 6308035447752, "type": "logic", "lifetime": "Static" }, { "name": "limit", "kind": "Port", "addr": 6308035447896, "type": "logic[3:0]", "direction": "In", "internalSymbol": "6308035448024 limit" }, { "name": "limit", "kind": "Variable", "addr": 6308035448024, "type": "logic[3:0]", "lifetime": "Static" }, { "name": "at_limit", "kind": "Port", "addr": 6308035448168, "type": "logic", "direction": "Out", "internalSymbol": "6308035448296 at_limit" }, { "name": "at_limit", "kind": "Variable", "addr": 6308035448296, "type": "logic", "lifetime": "Static" }, { "name": "current_count", "kind": "Variable", "addr": 6308035446880, "type": "logic[3:0]", "lifetime": "Static" }, { "name": "", "kind": "ProceduralBlock", "addr": 6308035447024, "procedureKind": "AlwaysFF", "body": { "kind": "Timed", "timing": { "kind": "EventList", "events": [ { "kind": "SignalEvent", "expr": { "kind": "NamedValue", "type": "logic", "symbol": "6308035447480 clk" }, "edge": "PosEdge" }, { "kind": "SignalEvent", "expr": { "kind": "NamedValue", "type": "logic", "symbol": "6308035447752 rst_n" }, "edge": "NegEdge" } ] }, "stmt": { "kind": "Block", "blockKind": "Sequential", "body": { "kind": "Conditional", "conditions": [ { "expr": { "kind": "UnaryOp", "type": "logic", "op": "LogicalNot", "operand": { "kind": "NamedValue", "type": "logic", "symbol": "6308035447752 rst_n" } } } ], "check": "None", "ifTrue": { "kind": "Block", "blockKind": "Sequential", "body": { "kind": "ExpressionStatement", "expr": { "kind": "Assignment", "type": "logic[3:0]", "left": { "kind": "NamedValue", "type": "logic[3:0]", "symbol": "6308035446880 current_count" }, "right": { "kind": "Conversion", "type": "logic[3:0]", "operand": { "kind": "IntegerLiteral", "type": "bit[3:0]", "value": "4'b0", "constant": "4'b0" }, "constant": "4'b0" }, "isNonBlocking": true } } }, "ifFalse": { "kind": "Block", "blockKind": "Sequential", "body": { "kind": "ExpressionStatement", "expr": { "kind": "Assignment", "type": "logic[3:0]", "left": { "kind": "NamedValue", "type": "logic[3:0]", "symbol": "6308035446880 current_count" }, "right": { "kind": "BinaryOp", "type": "logic[3:0]", "op": "Add", "left": { "kind": "NamedValue", "type": "logic[3:0]", "symbol": "6308035446880 current_count" }, "right": { "kind": "Conversion", "type": "logic[3:0]", "operand": { "kind": "IntegerLiteral", "type": "bit[0:0]", "value": "1'b1", "constant": "1'b1" }, "constant": "4'b1" } }, "isNonBlocking": true } } } } } } }, { "name": "comp_inst", "kind": "Instance", "addr": 6308035448472, "body": { "name": "Comparator", "kind": "InstanceBody", "addr": 6308035448608, "members": [ { "name": "count", "kind": "Port", "addr": 6308035451440, "type": "logic[3:0]", "direction": "In", "internalSymbol": "6308035451568 count" }, { "name": "count", "kind": "Variable", "addr": 6308035451568, "type": "logic[3:0]", "lifetime": "Static" }, { "name": "target", "kind": "Port", "addr": 6308035451712, "type": "logic[3:0]", "direction": "In", "internalSymbol": "6308035451840 target" }, { "name": "target", "kind": "Variable", "addr": 6308035451840, "type": "logic[3:0]", "lifetime": "Static" }, { "name": "match", "kind": "Port", "addr": 6308035451984, "type": "logic", "direction": "Out", "internalSymbol": "6308035452112 match" }, { "name": "match", "kind": "Variable", "addr": 6308035452112, "type": "logic", "lifetime": "Static" }, { "name": "", "kind": "ProceduralBlock", "addr": 6308035448920, "procedureKind": "AlwaysComb", "body": { "kind": "Block", "blockKind": "Sequential", "body": { "kind": "Conditional", "conditions": [ { "expr": { "kind": "BinaryOp", "type": "logic", "op": "Equality", "left": { "kind": "NamedValue", "type": "logic[3:0]", "symbol": "6308035451568 count" }, "right": { "kind": "NamedValue", "type": "logic[3:0]", "symbol": "6308035451840 target" } } } ], "check": "None", "ifTrue": { "kind": "ExpressionStatement", "expr": { "kind": "Assignment", "type": "logic", "left": { "kind": "NamedValue", "type": "logic", "symbol": "6308035452112 match" }, "right": { "kind": "Conversion", "type": "logic", "operand": { "kind": "IntegerLiteral", "type": "bit[0:0]", "value": "1'b1", "constant": "1'b1" }, "constant": "1'b1" }, "isNonBlocking": false } }, "ifFalse": { "kind": "ExpressionStatement", "expr": { "kind": "Assignment", "type": "logic", "left": { "kind": "NamedValue", "type": "logic", "symbol": "6308035452112 match" }, "right": { "kind": "Conversion", "type": "logic", "operand": { "kind": "IntegerLiteral", "type": "bit[0:0]", "value": "1'b0", "constant": "1'b0" }, "constant": "1'b0" }, "isNonBlocking": false } } } } } ], "definition": "6308031980544 Comparator" }, "connections": [ { "port": { "name": "count", "kind": "Port", "addr": 6308035451440, "type": "logic[3:0]", "direction": "In", "internalSymbol": "6308035451568 count" }, "expr": { "kind": "NamedValue", "type": "logic[3:0]", "symbol": "6308035446880 current_count" } }, { "port": { "name": "target", "kind": "Port", "addr": 6308035451712, "type": "logic[3:0]", "direction": "In", "internalSymbol": "6308035451840 target" }, "expr": { "kind": "NamedValue", "type": "logic[3:0]", "symbol": "6308035448024 limit" } }, { "port": { "name": "match", "kind": "Port", "addr": 6308035451984, "type": "logic", "direction": "Out", "internalSymbol": "6308035452112 match" }, "expr": { "kind": "Assignment", "type": "logic", "left": { "kind": "NamedValue", "type": "logic", "symbol": "6308035448296 at_limit" }, "right": { "kind": "EmptyArgument", "type": "logic" }, "isNonBlocking": false } } ] } ], "definition": "6308031981312 CounterTop" }, "connections": [ ] } ] }, "definitions": [ { "name": "Comparator", "kind": "Definition", "addr": 6308031980544, "defaultNetType": "6308034857920 wire", "definitionKind": "Module", "defaultLifetime": "Static", "unconnectedDrive": "None", "cellDefine": false }, { "name": "CounterTop", "kind": "Definition", "addr": 6308031981312, "defaultNetType": "6308034857920 wire", "definitionKind": "Module", "defaultLifetime": "Static", "unconnectedDrive": "None", "cellDefine": false } ] }</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">design</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">$root</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Root</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308034860160</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">members</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">""</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CompilationUnit</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035446328</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CounterTop</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Instance</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035447208</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">body</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CounterTop</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">InstanceBody</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035446624</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">members</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">clk</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035447352</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">In</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035447480 clk</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">clk</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Variable</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035447480</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">lifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">rst_n</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035447624</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">In</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035447752 rst_n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">rst_n</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Variable</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035447752</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">lifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">limit</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035447896</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">In</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035448024 limit</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">limit</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Variable</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035448024</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">lifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">at_limit</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035448168</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Out</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035448296 at_limit</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">at_limit</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Variable</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035448296</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">lifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">current_count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Variable</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035446880</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">lifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">""</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ProceduralBlock</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035447024</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">procedureKind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AlwaysFF</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">body</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Timed</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">timing</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EventList</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">events</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SignalEvent</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035447480 clk</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">edge</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">PosEdge</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">SignalEvent</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035447752 rst_n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">edge</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NegEdge</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">stmt</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Block</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">blockKind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Sequential</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">body</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Conditional</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">conditions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">UnaryOp</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">op</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">LogicalNot</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operand</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035447752 rst_n</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">check</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">None</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">ifTrue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Block</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">blockKind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Sequential</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">body</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ExpressionStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Assignment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035446880 current_count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Conversion</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operand</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">bit[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">value</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">4'b0</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">constant</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">4'b0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">constant</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">4'b0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">isNonBlocking</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">true</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">ifFalse</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Block</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">blockKind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Sequential</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">body</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ExpressionStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Assignment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035446880 current_count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">BinaryOp</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">op</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Add</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035446880 current_count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Conversion</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operand</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">bit[0:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">value</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1'b1</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">constant</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1'b1</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">constant</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">4'b1</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">isNonBlocking</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">true</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">comp_inst</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Instance</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035448472</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">body</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comparator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">InstanceBody</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035448608</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">members</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035451440</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">In</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035451568 count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Variable</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035451568</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">lifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">target</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035451712</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">In</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035451840 target</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">target</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Variable</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035451840</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">lifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">match</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035451984</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Out</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035452112 match</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">match</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Variable</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035452112</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">lifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">""</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ProceduralBlock</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035448920</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">procedureKind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">AlwaysComb</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">body</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Block</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">blockKind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Sequential</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">body</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Conditional</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">conditions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">BinaryOp</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">op</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Equality</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035451568 count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035451840 target</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">check</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">None</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ifTrue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ExpressionStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Assignment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035452112 match</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Conversion</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operand</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">bit[0:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">value</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1'b1</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">constant</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1'b1</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">constant</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1'b1</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">isNonBlocking</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">false</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ifFalse</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">ExpressionStatement</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Assignment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035452112 match</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Conversion</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">operand</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">IntegerLiteral</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">bit[0:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">value</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1'b0</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">constant</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1'b0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">constant</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">1'b0</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">isNonBlocking</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">false</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">definition</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308031980544 Comparator</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #916B53">connections</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">count</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035451440</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">In</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035451568 count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035446880 current_count</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">target</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035451712</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">In</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035451840 target</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic[3:0]</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035448024 limit</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">match</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Port</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308035451984</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">direction</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Out</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">internalSymbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035452112 match</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #82AAFF">expr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Assignment</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">left</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">NamedValue</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">symbol</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308035448296 at_limit</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">right</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">EmptyArgument</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">type</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">logic</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FF9CAC">isNonBlocking</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">false</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">],</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F07178">definition</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308031981312 CounterTop</span><span style="color: #89DDFF">"</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #F78C6C">connections</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C792EA">definitions</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">[</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Comparator</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Definition</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308031980544</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">defaultNetType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308034857920 wire</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">definitionKind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Module</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">defaultLifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">unconnectedDrive</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">None</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">cellDefine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">false</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">},</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">name</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">CounterTop</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">kind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Definition</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">addr</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #F78C6C">6308031981312</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">defaultNetType</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">6308034857920 wire</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">definitionKind</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Module</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">defaultLifetime</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Static</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">unconnectedDrive</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">None</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">"</span><span style="color: #FFCB6B">cellDefine</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">:</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">false</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF">]</span></span> <span class="line"><span style="color: #89DDFF">}</span></span></code></pre></div> </div> </div> </div> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph"></p> <h2 class="wp-block-heading">Implementing Goto Definition</h2> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph">Now let’s explore how we use this information to implement one of the most commonly used features that a language server provides: <a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_definition">Goto Definition</a>.</p> <p class="wp-block-paragraph">A compiler like Slang will produce symbols that reference lower and lower levels of abstraction; however, we need pointers going the other way. For example, Slang has a <a href="https://github.com/MikePopoloski/slang/blob/master/include/slang/ast/Compilation.h">Compilation</a>, which points at <a href="https://github.com/MikePopoloski/slang/blob/master/include/slang/ast/Symbol.h">Symbols</a>, which point at <a href="https://github.com/MikePopoloski/slang/blob/master/include/slang/syntax/SyntaxNode.h">SyntaxNodes</a>, which point at <a href="https://github.com/MikePopoloski/slang/blob/master/include/slang/parsing/Token.h">Tokens</a>, which finally point at <a href="https://github.com/MikePopoloski/slang/blob/master/include/slang/text/SourceLocation.h">SourceLocations</a>. When asking the language server for a definition, we need to traverse this chain in the opposite direction using what’s called a reverse index. Let’s explore how this is accomplished at each step.</p> <p class="wp-block-paragraph"><strong>SourceLocation (offset) -> Token: Binary Search</strong></p> <p class="wp-block-paragraph">Using a binary search was chosen instead of array or hashmap for reduced memory and better startup latency when a file is opened.</p> <p class="wp-block-paragraph"><strong>Token -> Syntax: Token index</strong></p> <p class="wp-block-paragraph">While visiting the syntax tree, we create a map of tokens to their parent syntax, since tokens in Slang don’t have parent pointers (Syntax Nodes do). Some sort of binary search on the tree itself will not work since the tree’s tokens may have come from macro expansions, so comparing those source locations would not make sense.</p> <p class="wp-block-paragraph"><strong>Token/Syntax -> Symbol:</strong></p> <p class="wp-block-paragraph">If we’re looking at an expression:</p> <ul class="wp-block-list"> <li>We can use Slang’s <a href="https://github.com/MikePopoloski/slang/blob/master/include/slang/ast/Lookup.h">lookup</a> functionality if we have a NameSyntax and a Scope object. A NameSyntax is a class of syntax nodes that look like a name, and may include things like array accesses and struct member accesses. To get this we can follow parent pointers up to a name syntax. To grab a <a href="https://github.com/MikePopoloski/slang/blob/master/include/slang/ast/Scope.h">Scope</a> object, we create a map of syntax nodes to scopes on the initial indexing of the shallow compilation.</li> </ul> <p class="wp-block-paragraph">If we’re on a symbol declaration:</p> <ul class="wp-block-list"> <li>We can visit the symbols in our file when it’s opened and index the name token of each symbol. This is used to access the symbol for go-to references and hovers, since we’re already at the symbol declaration.</li> </ul> <p class="wp-block-paragraph">If we’re using named ports/params/args/struct fields:</p> <ul class="wp-block-list"> <li>We can either index on startup, or crawl back to the symbol definition and get the arguments from there.</li> </ul> <p class="wp-block-paragraph">There are plenty of other cases to think about that we won’t go into here, such as import/export statements, macro arguments, macro usages, etc. Once we have the symbol, we can get the symbol’s syntax to use in both hovers and goto-defs, and also display relevant information like type information, bitwidth, and more from the symbol.</p> <p class="wp-block-paragraph"><strong>Shallow Compilations</strong></p> <p class="wp-block-paragraph">The “Compilation” or AST that we use only needs to provide the symbols visible in the current document, so we can use what we call a Shallow Compilation to only elaborate what we need. Most hardware tools typically require that you compile and elaborate an entire design, but we’re able to tweak Slang to provide just the information needed. The shallow compilation only adds syntax trees of directly referenced modules before elaborating. This limited depth means we can recompile the shallow compilation on every keystroke and keep up with the user, rather than performing a costly elaboration on an entire design. This has the added benefit that the user isn’t required to select a design to get language features, which some other SystemVerilog language servers require. Features for analyzing an entire design do exist in the server, but even when a design is set, the server uses a shallow compilation to keep up with the user’s typing and provide core language features on every keystroke.</p> <p class="wp-block-paragraph"></p> <h2 class="wp-block-heading">Optimizing the Indexer</h2> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph">Now let’s explore a critical part of the language server: the indexer. This costly process runs when the language server is first started. It crawls the workspace for SystemVerilog files and makes mappings of things like module names to files that contain those modules. It’s crucial that this indexing process runs in a reasonable time so that the user isn’t left waiting when opening up their editor.</p> <p class="wp-block-paragraph">Let’s explore some optimizations that were made in the indexer.</p> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph"><strong>Optimization #1: Avoid shared memory and lock contention</strong></p> <p class="wp-block-paragraph">This code looks fairly innocent:</p> <div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:clamp(14px, .875rem, 21px);font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#babed8;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:clamp(20px, 1.25rem, 30px);--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#33384d;color:#aaafcf">C++</span><span role="button" tabindex="0" style="color:#babed8;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly="">void populateIndexForSingleFile(const fs::path& path, Indexer::IndexedPath& dest) { dest.path = path.string(); if (auto tree = slang::syntax::SyntaxTree::fromFile(path.string())) { getDataFromTree(tree->get(), dest.relevantSymbols, dest.relevantMacros); } else { ERROR("Error parsing file for indexing: {}", path.string()); return; } };</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki material-theme-palenight" style="background-color: #292D3E" tabindex="0"><code><span class="line"><span style="color: #C792EA">void</span><span style="color: #BABED8"> </span><span style="color: #82AAFF">populateIndexForSingleFile</span><span style="color: #89DDFF">(</span><span style="color: #C792EA">const</span><span style="color: #BABED8"> </span><span style="color: #FFCB6B">fs</span><span style="color: #89DDFF">::</span><span style="color: #FFCB6B">path</span><span style="color: #C792EA">&</span><span style="color: #BABED8"> </span><span style="color: #BABED8; font-style: italic">path</span><span style="color: #89DDFF">,</span><span style="color: #BABED8"> </span><span style="color: #FFCB6B">Indexer</span><span style="color: #89DDFF">::</span><span style="color: #FFCB6B">IndexedPath</span><span style="color: #C792EA">&</span><span style="color: #BABED8"> </span><span style="color: #BABED8; font-style: italic">dest</span><span style="color: #89DDFF">)</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #BABED8"> dest</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">path </span><span style="color: #89DDFF">=</span><span style="color: #BABED8"> path</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">string</span><span style="color: #89DDFF">();</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">if</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">(</span><span style="color: #C792EA">auto</span><span style="color: #BABED8"> tree </span><span style="color: #89DDFF">=</span><span style="color: #BABED8"> </span><span style="color: #FFCB6B">slang</span><span style="color: #89DDFF">::</span><span style="color: #FFCB6B">syntax</span><span style="color: #89DDFF">::</span><span style="color: #FFCB6B">SyntaxTree</span><span style="color: #89DDFF">::</span><span style="color: #82AAFF">fromFile</span><span style="color: #89DDFF">(</span><span style="color: #BABED8">path</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">string</span><span style="color: #89DDFF">()))</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #F07178"> </span><span style="color: #82AAFF">getDataFromTree</span><span style="color: #89DDFF">(</span><span style="color: #BABED8">tree</span><span style="color: #89DDFF">-></span><span style="color: #82AAFF">get</span><span style="color: #89DDFF">(),</span><span style="color: #F07178"> </span><span style="color: #BABED8">dest</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">relevantSymbols</span><span style="color: #89DDFF">,</span><span style="color: #F07178"> </span><span style="color: #BABED8">dest</span><span style="color: #89DDFF">.</span><span style="color: #BABED8">relevantMacros</span><span style="color: #89DDFF">);</span></span> <span class="line"><span style="color: #F07178"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #BABED8"> </span><span style="color: #89DDFF; font-style: italic">else</span><span style="color: #BABED8"> </span><span style="color: #89DDFF">{</span></span> <span class="line"><span style="color: #F07178"> </span><span style="color: #82AAFF">ERROR</span><span style="color: #89DDFF">(</span><span style="color: #89DDFF">"</span><span style="color: #C3E88D">Error parsing file for indexing: {}</span><span style="color: #89DDFF">"</span><span style="color: #89DDFF">,</span><span style="color: #F07178"> </span><span style="color: #BABED8">path</span><span style="color: #89DDFF">.</span><span style="color: #82AAFF">string</span><span style="color: #89DDFF">());</span></span> <span class="line"><span style="color: #F07178"> </span><span style="color: #89DDFF; font-style: italic">return</span><span style="color: #89DDFF">;</span></span> <span class="line"><span style="color: #F07178"> </span><span style="color: #89DDFF">}</span></span> <span class="line"><span style="color: #89DDFF">};</span></span></code></pre></div> <p class="wp-block-paragraph">However, it’s actually very inefficient if you explore what it does in more depth. The <code>SyntaxTree::fromFile</code> method was added for convenience in testing. It uses a global source manager, which is the class that manages the file data read from disk. For efficiency, this class ensures that each file is only read once. Also, to enable parallel parsing, this SourceManager has locks on most of its methods.</p> <p class="wp-block-paragraph">These are useful optimizations during normal usage in the slang linter, but in our use case these are hindrances since each indexing operation is completely independent. There’s no time saved by locking and checking if the file was already parsed, since each file is indexed exactly once and we don’t bother expanding included files during indexing. Realizing this, we can instead use one SourceManager per thread on the stack to greatly speed up our indexing. Before, each thread had to reach up into a shared cache level to grab this source manager and contend for the lock. Now each thread has no contention and no cache invalidation from sharing a source manager.</p> <p class="wp-block-paragraph"><strong>Optimization #2: std::unordered_map<SmallVector<>> instead of std::multimap<></strong></p> <p class="wp-block-paragraph">It’s possible that a top level symbol name is declared in multiple files – for example, different packages of the same name that hold different parameterizations of a design, or different versions of a module. Because of this, a multimap was initially chosen to store the module to file mapping since it can store a range of values for a key. However, it has log(n) lookup. This cost is also incurred while building the index. An unordered map is a better choice for performance, but if we store a vector in the value, that’s another malloc that will often be just one file. Slang has the exact utility for this: a <a href="https://github.com/MikePopoloski/slang/blob/master/include/slang/util/SmallVector.h">SmallVector</a> implementation. This stores a fixed amount of elements directly in the object before deferring to a normal vector, which saves some indirection. Slang and other compilers use this construct extensively to reduce extra memory allocations when the size of a list is expected to be small.</p> <p class="wp-block-paragraph"><strong>Optimization #3: Only store paths once</strong></p> <p class="wp-block-paragraph">File paths can take up a lot of memory in our data structures, since the same path will be found in different maps. Also, hashing this string can be expensive. By <a href="https://en.wikipedia.org/wiki/Interning_(computer_science)">interning</a> it, or associating it with an integer id, we hash and store the string once and reuse that hash.</p> <p class="wp-block-paragraph"><strong>Optimization #4: Crawl workspace instead of globbing</strong></p> <p class="wp-block-paragraph">Globs were initially used to specify which files to index; however, globs are expensive to compute and to crawl, and it’s tricky to specify the four common file extensions that SystemVerilog code lives in. To speed this up and simplify usage, we can crawl the directory directly instead, and allow the user to specify directories that it should skip over – for example, directories containing build artifacts or software.</p> <p class="wp-block-paragraph">These are real optimizations that were added before adding the goto-references feature, resulting in about a 10x speedup. After adding the referenced top level symbols to the indexing process, it was still about a 4x improvement, providing a meaningful impact for the users of our codebase. We tested it on <a href="https://github.com/lowRISC/opentitan" type="link" id="https://github.com/lowRISC/opentitan">the largest open source SystemVerilog repo</a>, which comes in at 45MB of code and is composed of 3955 files. This was indexed in .41 seconds on an M1 Macbook Pro, composed of .13s crawling and .28s parsing and indexing.</p> <p class="wp-block-paragraph"></p> <h2 class="wp-block-heading" id="h-wrapping-up">Wrapping Up</h2> <p class="wp-block-paragraph"></p> <p class="wp-block-paragraph">HRT chooses to invest in developer efficiency and experience, and we’re proud to share these projects with the hardware community. It is this exact commitment to developer efficiency that has enabled us to scale up and trade on over 200 markets around the world while maintaining a headcount of only around 1,150 people.</p> <p class="wp-block-paragraph">If you’re a hardware designer or verification engineer looking to work on cutting-edge silicon in a modern development environment, check out our hardware roles <a href="https://www.hudsonrivertrading.com/careers/?job-category=hardware-engineering%2C">here</a>. Or, if you’re interested in working on similar challenging problems close to modern or custom hardware, check out our software roles <a href="https://www.hudsonrivertrading.com/careers/?job-category=software-engineeringc%2Cparent_software-engineeringc%2Csoftware-engineeringpython%2C">here</a>.</p> <p class="wp-block-paragraph">To try out the language server, simply install it on any VSCode based editor. There’s no longer a need to build it from source; the vscode client will now prompt to auto-install the latest binary from the releases page. Instructions for other editors can be found <a href="https://hudson-trading.github.io/slang-server/start/installing/#neovim">here</a>. </p> <p class="wp-block-paragraph">This year during Surge, members of our FPGA team and I are making slang-format, a SystemVerilog formatter. If you’re interested in updates like the addition of the formatter, follow along on the <a href="https://github.com/hudson-trading/slang-server">slang-server repo</a>.</p> <p class="wp-block-paragraph">Sources</p> <ol class="wp-block-list"> <li><a href="https://github.com/MikePopoloski/slang">https://github.com/MikePopoloski/slang</a> </li> <li><a href="https://github.com/hudson-trading/slang-server">https://github.com/hudson-trading/slang-server</a> </li> <li><a href="http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/">http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/</a></li> </ol> <p class="wp-block-paragraph">Recommended Reading</p> <ul class="wp-block-list"> <li><a href="https://en.algorithmica.org/hpc/">https://en.algorithmica.org/hpc/</a></li> </ul>