Phase 3: Grammar-Kit parser, PSI and ParserDefinition

Adds src/main/grammar/Jai.bnf, the generated parser/PSI in src/main/gen, a
JaiParserDefinition, and the Tier 3 corpus parse gate (406/714 files clean).

Two things were not obvious:

- Grammar-Kit mints its own token instances from the .bnf 'tokens' block, which
  are different objects from the ones JaiLexer emits, so every rule silently
  failed to match. Fixed with tokenTypeFactory -> JaiTokenTypes.byName.
- A backslash inside an identifier is a continuation in the compiler's lexer
  (Jai_Lexer/module.jai:444): 'left\_margin' is one identifier. JaiLexer now
  does the same; the Tier 0 round-trip still holds because the token span
  covers the backslash and the skipped spaces.

Constructs that BNF alone cannot express live in JaiParserUtil: directive-name
tests (#ident is one token), '==' before '{' for the switch form, procedure
header vs parenthesised expression, and the declaration lookahead.
This commit is contained in:
hgranthorner
2026-08-04 12:05:42 -04:00
parent 746647d27d
commit 37809b8aa7
169 changed files with 8328 additions and 7 deletions

View File

@@ -78,6 +78,10 @@ Tier 0: lexed 714 files, 17154195 chars, 3009381 tokens cleanly.
`~/.local/jai`, keywords/tokens transcribed from the compiler's own lexer.
**Read this before writing any lexer or parser code.**
- `docs/BUILD_PLAN.md` — phased plan, testing strategy, risks, open questions.
- Local IntelliJ reference projects and documentation in `~/programming/thirdparty`:
- `fortran-plugin` — a simple language plugin to use as reference.
- `intellij-elixir` — a more complex plugin to use as reference.
- `intellij-sdk-docs` — local versions of the IntelliJ SDK documentation.
- `mise.toml``java = "temurin-21"` (was 17, which was broken).
- `jaigradle` — JDK-resolving Gradle wrapper. Executable, verified.
- `jaitest` — runs the suite and reports the JUnit XML (see above).
@@ -131,9 +135,8 @@ Both are justified in `docs/BUILD_PLAN.md` §2. Do not silently reverse them.
Nested block comments need a depth counter. Both would end up as hand-written
Java inside JFlex actions anyway.
- **Grammar-Kit BNF for parser + PSI.** Verified headless: the plugin ID is
`org.jetbrains.intellij.platform.grammarkit`, bundled in the IntelliJ Platform
Gradle Plugin since 2.12.0 (we run 2.18.1). `generateLexer` / `generateParser`
already appear in `./jaigradle tasks --all` — no extra dependency needed.
`org.jetbrains.intellij.platform.grammarkit`, applied in `build.gradle.kts`.
`generateLexer` / `generateParser` tasks are present in `./jaigradle tasks`.
- **Ship highlighting before the parser.** Highlighting needs only the lexer.
---

View File

@@ -52,3 +52,9 @@ Key docs:
| `AGENTS.md` | how to work in this repo; current state |
| `docs/JAI_LANGUAGE_REFERENCE.md` | the language, transcribed from the compiler |
| `docs/BUILD_PLAN.md` | phased plan and testing strategy |
Local IntelliJ references are available in `~/programming/thirdparty`:
- `fortran-plugin` — a simple language plugin to use as reference.
- `intellij-elixir` — a more complex plugin to use as reference.
- `intellij-sdk-docs` — local versions of the IntelliJ SDK documentation.

View File

@@ -4,6 +4,13 @@ plugins {
id("org.jetbrains.kotlin.jvm")
id("org.jetbrains.changelog")
id("org.jetbrains.intellij.platform")
id("org.jetbrains.intellij.platform.grammarkit")
}
sourceSets {
main {
java.srcDirs("src/main/gen")
}
}
// Read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin.html
@@ -19,3 +26,11 @@ dependencies {
// bundledPlugin("com.intellij.java")
}
}
tasks.generateParser {
sourceFile.set(file("src/main/grammar/Jai.bnf"))
targetRootOutputDir.set(file("src/main/gen"))
pathToParser.set("dev/hgh/jai/parser/JaiParser.java")
pathToPsiRoot.set("dev/hgh/jai/psi")
purgeOldFiles.set(true)
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiAddExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiAndExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiArgument extends PsiElement {
@Nullable
JaiExpr getExpr();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiArrayLiteralExpr extends JaiExpr {
@NotNull
List<JaiArgument> getArgumentList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiArrayTypeExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiAssignExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiAutoCastExpr extends JaiExpr {
@Nullable
JaiExpr getExpr();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiBacktickExpr extends JaiExpr {
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiBitAndExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiBitOrExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiBitXorExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiBlock extends PsiElement {
@NotNull
List<JaiStatement> getStatementList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiBreakStatement extends PsiElement {
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiBuiltinCallExpr extends JaiExpr {
@NotNull
List<JaiArgument> getArgumentList();
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiCallExpr extends JaiExpr {
@NotNull
List<JaiArgument> getArgumentList();
@NotNull
JaiExpr getExpr();
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiCaseClause extends PsiElement {
@Nullable
JaiExpr getExpr();
@NotNull
List<JaiStatement> getStatementList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiCastExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiContinueStatement extends PsiElement {
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiDeclNames extends PsiElement {
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiDeclaration extends PsiElement {
@NotNull
JaiDeclNames getDeclNames();
@Nullable
JaiInitializer getInitializer();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiDeferStatement extends PsiElement {
@NotNull
JaiStatement getStatement();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiDerefExpr extends JaiExpr {
@NotNull
JaiExpr getExpr();
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiDirectiveExpr extends JaiExpr {
@Nullable
JaiBlock getBlock();
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiDirectiveStatement extends PsiElement {
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiElseClause extends PsiElement {
@NotNull
JaiStatement getStatement();
}

View File

@@ -0,0 +1,19 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiEnumExpr extends JaiExpr {
@NotNull
JaiBlock getBlock();
@Nullable
JaiExpr getExpr();
@NotNull
List<JaiProcModifier> getProcModifierList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiEqualityExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiExpr extends PsiElement {
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiExpressionStatement extends PsiElement {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiForNames extends PsiElement {
}

View File

@@ -0,0 +1,19 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiForStatement extends PsiElement {
@NotNull
List<JaiExpr> getExprList();
@Nullable
JaiForNames getForNames();
@NotNull
JaiStatement getStatement();
}

View File

@@ -0,0 +1,22 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiIfStatement extends PsiElement {
@Nullable
JaiElseClause getElseClause();
@NotNull
JaiExpr getExpr();
@Nullable
JaiStatement getStatement();
@Nullable
JaiSwitchBody getSwitchBody();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiIfxExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiIndexExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiInitializer extends PsiElement {
@Nullable
JaiExpr getExpr();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiInlineExpr extends JaiExpr {
@Nullable
JaiExpr getExpr();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiInterfaceExpr extends JaiExpr {
@Nullable
JaiExpr getExpr();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiLambdaExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiLiteralExpr extends JaiExpr {
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiMemberExpr extends JaiExpr {
@NotNull
JaiExpr getExpr();
@NotNull
JaiMemberName getMemberName();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiMemberName extends PsiElement {
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiMulExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiNoteStatement extends PsiElement {
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiOperatorDeclaration extends PsiElement {
@NotNull
JaiExpr getExpr();
@NotNull
JaiOperatorSymbol getOperatorSymbol();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiOperatorSymbol extends PsiElement {
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiOrExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiParamName extends PsiElement {
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiParamNames extends PsiElement {
@NotNull
List<JaiParamName> getParamNameList();
}

View File

@@ -0,0 +1,19 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiParameter extends PsiElement {
@Nullable
JaiExpr getExpr();
@Nullable
JaiInitializer getInitializer();
@Nullable
JaiParamNames getParamNames();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiParenExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiPrefixExpr extends JaiExpr {
@Nullable
JaiExpr getExpr();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiPrimaryExpr extends JaiExpr {
}

View File

@@ -0,0 +1,25 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiProcLiteralExpr extends JaiExpr {
@Nullable
JaiBlock getBlock();
@NotNull
List<JaiParameter> getParameterList();
@NotNull
List<JaiProcModifier> getProcModifierList();
@Nullable
JaiReturnGroup getReturnGroup();
@NotNull
List<JaiReturnItem> getReturnItemList();
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiProcModifier extends PsiElement {
@Nullable
JaiBlock getBlock();
@Nullable
JaiExpr getExpr();
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiPushContextStatement extends PsiElement {
@NotNull
JaiBlock getBlock();
@NotNull
JaiExpr getExpr();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiRangeExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiRefExpr extends JaiExpr {
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiRelationalExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiRemoveStatement extends PsiElement {
@Nullable
JaiExpr getExpr();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiReturnGroup extends PsiElement {
@NotNull
List<JaiReturnItem> getReturnItemList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiReturnItem extends PsiElement {
@Nullable
JaiInitializer getInitializer();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiReturnStatement extends PsiElement {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiShiftExpr extends JaiExpr {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,58 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiStatement extends PsiElement {
@Nullable
JaiBlock getBlock();
@Nullable
JaiBreakStatement getBreakStatement();
@Nullable
JaiContinueStatement getContinueStatement();
@Nullable
JaiDeclaration getDeclaration();
@Nullable
JaiDeferStatement getDeferStatement();
@Nullable
JaiDirectiveStatement getDirectiveStatement();
@Nullable
JaiExpressionStatement getExpressionStatement();
@Nullable
JaiForStatement getForStatement();
@Nullable
JaiIfStatement getIfStatement();
@Nullable
JaiNoteStatement getNoteStatement();
@Nullable
JaiOperatorDeclaration getOperatorDeclaration();
@Nullable
JaiPushContextStatement getPushContextStatement();
@Nullable
JaiRemoveStatement getRemoveStatement();
@Nullable
JaiReturnStatement getReturnStatement();
@Nullable
JaiUsingStatement getUsingStatement();
@Nullable
JaiWhileStatement getWhileStatement();
}

View File

@@ -0,0 +1,19 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiStructExpr extends JaiExpr {
@NotNull
JaiBlock getBlock();
@NotNull
List<JaiParameter> getParameterList();
@NotNull
List<JaiProcModifier> getProcModifierList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiStructLiteralExpr extends JaiExpr {
@NotNull
List<JaiArgument> getArgumentList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiSwitchBody extends PsiElement {
@NotNull
List<JaiCaseClause> getCaseClauseList();
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiTypedArrayLiteralExpr extends JaiExpr {
@NotNull
List<JaiArgument> getArgumentList();
@NotNull
JaiExpr getExpr();
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiTypedStructLiteralExpr extends JaiExpr {
@NotNull
List<JaiArgument> getArgumentList();
@NotNull
JaiExpr getExpr();
}

View File

@@ -0,0 +1,418 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.PsiElement;
import com.intellij.lang.ASTNode;
import dev.hgh.jai.lexer.JaiTokenTypes;
import dev.hgh.jai.psi.impl.*;
public interface JaiTypes {
IElementType ADD_EXPR = new JaiElementType("ADD_EXPR");
IElementType AND_EXPR = new JaiElementType("AND_EXPR");
IElementType ARGUMENT = new JaiElementType("ARGUMENT");
IElementType ARRAY_LITERAL_EXPR = new JaiElementType("ARRAY_LITERAL_EXPR");
IElementType ARRAY_TYPE_EXPR = new JaiElementType("ARRAY_TYPE_EXPR");
IElementType ASSIGN_EXPR = new JaiElementType("ASSIGN_EXPR");
IElementType AUTO_CAST_EXPR = new JaiElementType("AUTO_CAST_EXPR");
IElementType BACKTICK_EXPR = new JaiElementType("BACKTICK_EXPR");
IElementType BIT_AND_EXPR = new JaiElementType("BIT_AND_EXPR");
IElementType BIT_OR_EXPR = new JaiElementType("BIT_OR_EXPR");
IElementType BIT_XOR_EXPR = new JaiElementType("BIT_XOR_EXPR");
IElementType BLOCK = new JaiElementType("BLOCK");
IElementType BREAK_STATEMENT = new JaiElementType("BREAK_STATEMENT");
IElementType BUILTIN_CALL_EXPR = new JaiElementType("BUILTIN_CALL_EXPR");
IElementType CALL_EXPR = new JaiElementType("CALL_EXPR");
IElementType CASE_CLAUSE = new JaiElementType("CASE_CLAUSE");
IElementType CAST_EXPR = new JaiElementType("CAST_EXPR");
IElementType CONTINUE_STATEMENT = new JaiElementType("CONTINUE_STATEMENT");
IElementType DECLARATION = new JaiElementType("DECLARATION");
IElementType DECL_NAMES = new JaiElementType("DECL_NAMES");
IElementType DEFER_STATEMENT = new JaiElementType("DEFER_STATEMENT");
IElementType DEREF_EXPR = new JaiElementType("DEREF_EXPR");
IElementType DIRECTIVE_EXPR = new JaiElementType("DIRECTIVE_EXPR");
IElementType DIRECTIVE_STATEMENT = new JaiElementType("DIRECTIVE_STATEMENT");
IElementType ELSE_CLAUSE = new JaiElementType("ELSE_CLAUSE");
IElementType ENUM_EXPR = new JaiElementType("ENUM_EXPR");
IElementType EQUALITY_EXPR = new JaiElementType("EQUALITY_EXPR");
IElementType EXPR = new JaiElementType("EXPR");
IElementType EXPRESSION_STATEMENT = new JaiElementType("EXPRESSION_STATEMENT");
IElementType FOR_NAMES = new JaiElementType("FOR_NAMES");
IElementType FOR_STATEMENT = new JaiElementType("FOR_STATEMENT");
IElementType IFX_EXPR = new JaiElementType("IFX_EXPR");
IElementType IF_STATEMENT = new JaiElementType("IF_STATEMENT");
IElementType INDEX_EXPR = new JaiElementType("INDEX_EXPR");
IElementType INITIALIZER = new JaiElementType("INITIALIZER");
IElementType INLINE_EXPR = new JaiElementType("INLINE_EXPR");
IElementType INTERFACE_EXPR = new JaiElementType("INTERFACE_EXPR");
IElementType LAMBDA_EXPR = new JaiElementType("LAMBDA_EXPR");
IElementType LITERAL_EXPR = new JaiElementType("LITERAL_EXPR");
IElementType MEMBER_EXPR = new JaiElementType("MEMBER_EXPR");
IElementType MEMBER_NAME = new JaiElementType("MEMBER_NAME");
IElementType MUL_EXPR = new JaiElementType("MUL_EXPR");
IElementType NOTE_STATEMENT = new JaiElementType("NOTE_STATEMENT");
IElementType OPERATOR_DECLARATION = new JaiElementType("OPERATOR_DECLARATION");
IElementType OPERATOR_SYMBOL = new JaiElementType("OPERATOR_SYMBOL");
IElementType OR_EXPR = new JaiElementType("OR_EXPR");
IElementType PARAMETER = new JaiElementType("PARAMETER");
IElementType PARAM_NAME = new JaiElementType("PARAM_NAME");
IElementType PARAM_NAMES = new JaiElementType("PARAM_NAMES");
IElementType PAREN_EXPR = new JaiElementType("PAREN_EXPR");
IElementType PREFIX_EXPR = new JaiElementType("PREFIX_EXPR");
IElementType PRIMARY_EXPR = new JaiElementType("PRIMARY_EXPR");
IElementType PROC_LITERAL_EXPR = new JaiElementType("PROC_LITERAL_EXPR");
IElementType PROC_MODIFIER = new JaiElementType("PROC_MODIFIER");
IElementType PUSH_CONTEXT_STATEMENT = new JaiElementType("PUSH_CONTEXT_STATEMENT");
IElementType RANGE_EXPR = new JaiElementType("RANGE_EXPR");
IElementType REF_EXPR = new JaiElementType("REF_EXPR");
IElementType RELATIONAL_EXPR = new JaiElementType("RELATIONAL_EXPR");
IElementType REMOVE_STATEMENT = new JaiElementType("REMOVE_STATEMENT");
IElementType RETURN_GROUP = new JaiElementType("RETURN_GROUP");
IElementType RETURN_ITEM = new JaiElementType("RETURN_ITEM");
IElementType RETURN_STATEMENT = new JaiElementType("RETURN_STATEMENT");
IElementType SHIFT_EXPR = new JaiElementType("SHIFT_EXPR");
IElementType STATEMENT = new JaiElementType("STATEMENT");
IElementType STRUCT_EXPR = new JaiElementType("STRUCT_EXPR");
IElementType STRUCT_LITERAL_EXPR = new JaiElementType("STRUCT_LITERAL_EXPR");
IElementType SWITCH_BODY = new JaiElementType("SWITCH_BODY");
IElementType TYPED_ARRAY_LITERAL_EXPR = new JaiElementType("TYPED_ARRAY_LITERAL_EXPR");
IElementType TYPED_STRUCT_LITERAL_EXPR = new JaiElementType("TYPED_STRUCT_LITERAL_EXPR");
IElementType UNARY_DOT_EXPR = new JaiElementType("UNARY_DOT_EXPR");
IElementType UNINITIALIZED_EXPR = new JaiElementType("UNINITIALIZED_EXPR");
IElementType UNION_EXPR = new JaiElementType("UNION_EXPR");
IElementType USING_STATEMENT = new JaiElementType("USING_STATEMENT");
IElementType WHILE_STATEMENT = new JaiElementType("WHILE_STATEMENT");
IElementType AND = JaiTokenTypes.byName("&");
IElementType AND_AND = JaiTokenTypes.byName("&&");
IElementType AND_AND_EQ = JaiTokenTypes.byName("&&=");
IElementType AND_EQ = JaiTokenTypes.byName("&=");
IElementType AT = JaiTokenTypes.byName("@");
IElementType BACKSLASH = JaiTokenTypes.byName("\\");
IElementType BACKTICK = JaiTokenTypes.byName("`");
IElementType BEGIN_ARRAY_LITERAL = JaiTokenTypes.byName(".[");
IElementType BEGIN_STRUCT_LITERAL = JaiTokenTypes.byName(".{");
IElementType BLOCK_COMMENT = JaiTokenTypes.byName("BLOCK_COMMENT");
IElementType COLON = JaiTokenTypes.byName(":");
IElementType COLON_COLON = JaiTokenTypes.byName("::");
IElementType COLON_EQ = JaiTokenTypes.byName(":=");
IElementType COMMA = JaiTokenTypes.byName(",");
IElementType DIRECTIVE = JaiTokenTypes.byName("DIRECTIVE");
IElementType DOLLAR = JaiTokenTypes.byName("$");
IElementType DOT = JaiTokenTypes.byName(".");
IElementType DOUBLE_COMMA = JaiTokenTypes.byName(",,");
IElementType DOUBLE_DOLLAR = JaiTokenTypes.byName("$$");
IElementType DOUBLE_DOT = JaiTokenTypes.byName("..");
IElementType DOUBLE_MINUS = JaiTokenTypes.byName("--");
IElementType EQ = JaiTokenTypes.byName("=");
IElementType EQ_EQ = JaiTokenTypes.byName("==");
IElementType EQ_EQ_EQ = JaiTokenTypes.byName("===");
IElementType GT = JaiTokenTypes.byName(">");
IElementType GT_EQ = JaiTokenTypes.byName(">=");
IElementType HASH = JaiTokenTypes.byName("#");
IElementType HERE_STRING = JaiTokenTypes.byName("HERE_STRING");
IElementType IDENT = JaiTokenTypes.byName("IDENT");
IElementType KW_BREAK = JaiTokenTypes.byName("break");
IElementType KW_CASE = JaiTokenTypes.byName("case");
IElementType KW_CAST = JaiTokenTypes.byName("cast");
IElementType KW_CODE_OF = JaiTokenTypes.byName("code_of");
IElementType KW_CONTEXT = JaiTokenTypes.byName("context");
IElementType KW_CONTINUE = JaiTokenTypes.byName("continue");
IElementType KW_DEFER = JaiTokenTypes.byName("defer");
IElementType KW_ELSE = JaiTokenTypes.byName("else");
IElementType KW_ENUM = JaiTokenTypes.byName("enum");
IElementType KW_ENUM_FLAGS = JaiTokenTypes.byName("enum_flags");
IElementType KW_FALSE = JaiTokenTypes.byName("false");
IElementType KW_FOR = JaiTokenTypes.byName("for");
IElementType KW_IF = JaiTokenTypes.byName("if");
IElementType KW_IFX = JaiTokenTypes.byName("ifx");
IElementType KW_INITIALIZER_OF = JaiTokenTypes.byName("initializer_of");
IElementType KW_INLINE = JaiTokenTypes.byName("inline");
IElementType KW_INTERFACE = JaiTokenTypes.byName("interface");
IElementType KW_IS_CONSTANT = JaiTokenTypes.byName("is_constant");
IElementType KW_NO_INLINE = JaiTokenTypes.byName("no_inline");
IElementType KW_NULL = JaiTokenTypes.byName("null");
IElementType KW_OPERATOR = JaiTokenTypes.byName("operator");
IElementType KW_PUSH_CONTEXT = JaiTokenTypes.byName("push_context");
IElementType KW_REMOVE = JaiTokenTypes.byName("remove");
IElementType KW_RETURN = JaiTokenTypes.byName("return");
IElementType KW_SIZE_OF = JaiTokenTypes.byName("size_of");
IElementType KW_STRUCT = JaiTokenTypes.byName("struct");
IElementType KW_THEN = JaiTokenTypes.byName("then");
IElementType KW_TRUE = JaiTokenTypes.byName("true");
IElementType KW_TYPE_INFO = JaiTokenTypes.byName("type_info");
IElementType KW_TYPE_OF = JaiTokenTypes.byName("type_of");
IElementType KW_UNION = JaiTokenTypes.byName("union");
IElementType KW_USING = JaiTokenTypes.byName("using");
IElementType KW_WHILE = JaiTokenTypes.byName("while");
IElementType KW_XX = JaiTokenTypes.byName("xx");
IElementType LBRACE = JaiTokenTypes.byName("{");
IElementType LBRACKET = JaiTokenTypes.byName("[");
IElementType LINE_COMMENT = JaiTokenTypes.byName("LINE_COMMENT");
IElementType LPAREN = JaiTokenTypes.byName("(");
IElementType LT = JaiTokenTypes.byName("<");
IElementType LT_EQ = JaiTokenTypes.byName("<=");
IElementType MINUS = JaiTokenTypes.byName("-");
IElementType MINUS_EQ = JaiTokenTypes.byName("-=");
IElementType NOT = JaiTokenTypes.byName("!");
IElementType NOTE = JaiTokenTypes.byName("NOTE");
IElementType NOT_EQ = JaiTokenTypes.byName("!=");
IElementType NUMBER = JaiTokenTypes.byName("NUMBER");
IElementType OR = JaiTokenTypes.byName("|");
IElementType OR_EQ = JaiTokenTypes.byName("|=");
IElementType OR_OR = JaiTokenTypes.byName("||");
IElementType OR_OR_EQ = JaiTokenTypes.byName("||=");
IElementType PERCENT = JaiTokenTypes.byName("%");
IElementType PERCENT_EQ = JaiTokenTypes.byName("%=");
IElementType PLUS = JaiTokenTypes.byName("+");
IElementType PLUS_EQ = JaiTokenTypes.byName("+=");
IElementType POSTFIX_DEREFERENCE = JaiTokenTypes.byName(".*");
IElementType QUESTION = JaiTokenTypes.byName("?");
IElementType QUICK_LAMBDA = JaiTokenTypes.byName("=>");
IElementType RBRACE = JaiTokenTypes.byName("}");
IElementType RBRACKET = JaiTokenTypes.byName("]");
IElementType RIGHT_ARROW = JaiTokenTypes.byName("->");
IElementType ROL = JaiTokenTypes.byName("<<<");
IElementType ROL_EQ = JaiTokenTypes.byName("<<<=");
IElementType ROR = JaiTokenTypes.byName(">>>");
IElementType ROR_EQ = JaiTokenTypes.byName(">>>=");
IElementType RPAREN = JaiTokenTypes.byName(")");
IElementType SEMICOLON = JaiTokenTypes.byName(";");
IElementType SHL = JaiTokenTypes.byName("<<");
IElementType SHL_EQ = JaiTokenTypes.byName("<<=");
IElementType SHR = JaiTokenTypes.byName(">>");
IElementType SHR_EQ = JaiTokenTypes.byName(">>=");
IElementType SLASH = JaiTokenTypes.byName("/");
IElementType SLASH_EQ = JaiTokenTypes.byName("/=");
IElementType STAR = JaiTokenTypes.byName("*");
IElementType STAR_EQ = JaiTokenTypes.byName("*=");
IElementType STRING = JaiTokenTypes.byName("STRING");
IElementType TILDE = JaiTokenTypes.byName("~");
IElementType TRIPLE_MINUS = JaiTokenTypes.byName("---");
IElementType XOR = JaiTokenTypes.byName("^");
IElementType XOR_EQ = JaiTokenTypes.byName("^=");
class Factory {
public static PsiElement createElement(ASTNode node) {
IElementType type = node.getElementType();
if (type == ADD_EXPR) {
return new JaiAddExprImpl(node);
}
else if (type == AND_EXPR) {
return new JaiAndExprImpl(node);
}
else if (type == ARGUMENT) {
return new JaiArgumentImpl(node);
}
else if (type == ARRAY_LITERAL_EXPR) {
return new JaiArrayLiteralExprImpl(node);
}
else if (type == ARRAY_TYPE_EXPR) {
return new JaiArrayTypeExprImpl(node);
}
else if (type == ASSIGN_EXPR) {
return new JaiAssignExprImpl(node);
}
else if (type == AUTO_CAST_EXPR) {
return new JaiAutoCastExprImpl(node);
}
else if (type == BACKTICK_EXPR) {
return new JaiBacktickExprImpl(node);
}
else if (type == BIT_AND_EXPR) {
return new JaiBitAndExprImpl(node);
}
else if (type == BIT_OR_EXPR) {
return new JaiBitOrExprImpl(node);
}
else if (type == BIT_XOR_EXPR) {
return new JaiBitXorExprImpl(node);
}
else if (type == BLOCK) {
return new JaiBlockImpl(node);
}
else if (type == BREAK_STATEMENT) {
return new JaiBreakStatementImpl(node);
}
else if (type == BUILTIN_CALL_EXPR) {
return new JaiBuiltinCallExprImpl(node);
}
else if (type == CALL_EXPR) {
return new JaiCallExprImpl(node);
}
else if (type == CASE_CLAUSE) {
return new JaiCaseClauseImpl(node);
}
else if (type == CAST_EXPR) {
return new JaiCastExprImpl(node);
}
else if (type == CONTINUE_STATEMENT) {
return new JaiContinueStatementImpl(node);
}
else if (type == DECLARATION) {
return new JaiDeclarationImpl(node);
}
else if (type == DECL_NAMES) {
return new JaiDeclNamesImpl(node);
}
else if (type == DEFER_STATEMENT) {
return new JaiDeferStatementImpl(node);
}
else if (type == DEREF_EXPR) {
return new JaiDerefExprImpl(node);
}
else if (type == DIRECTIVE_EXPR) {
return new JaiDirectiveExprImpl(node);
}
else if (type == DIRECTIVE_STATEMENT) {
return new JaiDirectiveStatementImpl(node);
}
else if (type == ELSE_CLAUSE) {
return new JaiElseClauseImpl(node);
}
else if (type == ENUM_EXPR) {
return new JaiEnumExprImpl(node);
}
else if (type == EQUALITY_EXPR) {
return new JaiEqualityExprImpl(node);
}
else if (type == EXPRESSION_STATEMENT) {
return new JaiExpressionStatementImpl(node);
}
else if (type == FOR_NAMES) {
return new JaiForNamesImpl(node);
}
else if (type == FOR_STATEMENT) {
return new JaiForStatementImpl(node);
}
else if (type == IFX_EXPR) {
return new JaiIfxExprImpl(node);
}
else if (type == IF_STATEMENT) {
return new JaiIfStatementImpl(node);
}
else if (type == INDEX_EXPR) {
return new JaiIndexExprImpl(node);
}
else if (type == INITIALIZER) {
return new JaiInitializerImpl(node);
}
else if (type == INLINE_EXPR) {
return new JaiInlineExprImpl(node);
}
else if (type == INTERFACE_EXPR) {
return new JaiInterfaceExprImpl(node);
}
else if (type == LAMBDA_EXPR) {
return new JaiLambdaExprImpl(node);
}
else if (type == LITERAL_EXPR) {
return new JaiLiteralExprImpl(node);
}
else if (type == MEMBER_EXPR) {
return new JaiMemberExprImpl(node);
}
else if (type == MEMBER_NAME) {
return new JaiMemberNameImpl(node);
}
else if (type == MUL_EXPR) {
return new JaiMulExprImpl(node);
}
else if (type == NOTE_STATEMENT) {
return new JaiNoteStatementImpl(node);
}
else if (type == OPERATOR_DECLARATION) {
return new JaiOperatorDeclarationImpl(node);
}
else if (type == OPERATOR_SYMBOL) {
return new JaiOperatorSymbolImpl(node);
}
else if (type == OR_EXPR) {
return new JaiOrExprImpl(node);
}
else if (type == PARAMETER) {
return new JaiParameterImpl(node);
}
else if (type == PARAM_NAME) {
return new JaiParamNameImpl(node);
}
else if (type == PARAM_NAMES) {
return new JaiParamNamesImpl(node);
}
else if (type == PAREN_EXPR) {
return new JaiParenExprImpl(node);
}
else if (type == PREFIX_EXPR) {
return new JaiPrefixExprImpl(node);
}
else if (type == PROC_LITERAL_EXPR) {
return new JaiProcLiteralExprImpl(node);
}
else if (type == PROC_MODIFIER) {
return new JaiProcModifierImpl(node);
}
else if (type == PUSH_CONTEXT_STATEMENT) {
return new JaiPushContextStatementImpl(node);
}
else if (type == RANGE_EXPR) {
return new JaiRangeExprImpl(node);
}
else if (type == REF_EXPR) {
return new JaiRefExprImpl(node);
}
else if (type == RELATIONAL_EXPR) {
return new JaiRelationalExprImpl(node);
}
else if (type == REMOVE_STATEMENT) {
return new JaiRemoveStatementImpl(node);
}
else if (type == RETURN_GROUP) {
return new JaiReturnGroupImpl(node);
}
else if (type == RETURN_ITEM) {
return new JaiReturnItemImpl(node);
}
else if (type == RETURN_STATEMENT) {
return new JaiReturnStatementImpl(node);
}
else if (type == SHIFT_EXPR) {
return new JaiShiftExprImpl(node);
}
else if (type == STATEMENT) {
return new JaiStatementImpl(node);
}
else if (type == STRUCT_EXPR) {
return new JaiStructExprImpl(node);
}
else if (type == STRUCT_LITERAL_EXPR) {
return new JaiStructLiteralExprImpl(node);
}
else if (type == SWITCH_BODY) {
return new JaiSwitchBodyImpl(node);
}
else if (type == TYPED_ARRAY_LITERAL_EXPR) {
return new JaiTypedArrayLiteralExprImpl(node);
}
else if (type == TYPED_STRUCT_LITERAL_EXPR) {
return new JaiTypedStructLiteralExprImpl(node);
}
else if (type == UNARY_DOT_EXPR) {
return new JaiUnaryDotExprImpl(node);
}
else if (type == UNINITIALIZED_EXPR) {
return new JaiUninitializedExprImpl(node);
}
else if (type == UNION_EXPR) {
return new JaiUnionExprImpl(node);
}
else if (type == USING_STATEMENT) {
return new JaiUsingStatementImpl(node);
}
else if (type == WHILE_STATEMENT) {
return new JaiWhileStatementImpl(node);
}
throw new AssertionError("Unknown element type: " + type);
}
}
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiUnaryDotExpr extends JaiExpr {
@NotNull
JaiMemberName getMemberName();
}

View File

@@ -0,0 +1,10 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiUninitializedExpr extends JaiExpr {
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiUnionExpr extends JaiExpr {
@NotNull
JaiBlock getBlock();
@NotNull
List<JaiProcModifier> getProcModifierList();
}

View File

@@ -0,0 +1,13 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiUsingStatement extends PsiElement {
@NotNull
List<JaiExpr> getExprList();
}

View File

@@ -0,0 +1,310 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.PsiElement;
public class JaiVisitor extends PsiElementVisitor {
public void visitAddExpr(@NotNull JaiAddExpr o) {
visitExpr(o);
}
public void visitAndExpr(@NotNull JaiAndExpr o) {
visitExpr(o);
}
public void visitArgument(@NotNull JaiArgument o) {
visitPsiElement(o);
}
public void visitArrayLiteralExpr(@NotNull JaiArrayLiteralExpr o) {
visitExpr(o);
}
public void visitArrayTypeExpr(@NotNull JaiArrayTypeExpr o) {
visitExpr(o);
}
public void visitAssignExpr(@NotNull JaiAssignExpr o) {
visitExpr(o);
}
public void visitAutoCastExpr(@NotNull JaiAutoCastExpr o) {
visitExpr(o);
}
public void visitBacktickExpr(@NotNull JaiBacktickExpr o) {
visitExpr(o);
}
public void visitBitAndExpr(@NotNull JaiBitAndExpr o) {
visitExpr(o);
}
public void visitBitOrExpr(@NotNull JaiBitOrExpr o) {
visitExpr(o);
}
public void visitBitXorExpr(@NotNull JaiBitXorExpr o) {
visitExpr(o);
}
public void visitBlock(@NotNull JaiBlock o) {
visitPsiElement(o);
}
public void visitBreakStatement(@NotNull JaiBreakStatement o) {
visitPsiElement(o);
}
public void visitBuiltinCallExpr(@NotNull JaiBuiltinCallExpr o) {
visitExpr(o);
}
public void visitCallExpr(@NotNull JaiCallExpr o) {
visitExpr(o);
}
public void visitCaseClause(@NotNull JaiCaseClause o) {
visitPsiElement(o);
}
public void visitCastExpr(@NotNull JaiCastExpr o) {
visitExpr(o);
}
public void visitContinueStatement(@NotNull JaiContinueStatement o) {
visitPsiElement(o);
}
public void visitDeclNames(@NotNull JaiDeclNames o) {
visitPsiElement(o);
}
public void visitDeclaration(@NotNull JaiDeclaration o) {
visitPsiElement(o);
}
public void visitDeferStatement(@NotNull JaiDeferStatement o) {
visitPsiElement(o);
}
public void visitDerefExpr(@NotNull JaiDerefExpr o) {
visitExpr(o);
}
public void visitDirectiveExpr(@NotNull JaiDirectiveExpr o) {
visitExpr(o);
}
public void visitDirectiveStatement(@NotNull JaiDirectiveStatement o) {
visitPsiElement(o);
}
public void visitElseClause(@NotNull JaiElseClause o) {
visitPsiElement(o);
}
public void visitEnumExpr(@NotNull JaiEnumExpr o) {
visitExpr(o);
}
public void visitEqualityExpr(@NotNull JaiEqualityExpr o) {
visitExpr(o);
}
public void visitExpr(@NotNull JaiExpr o) {
visitPsiElement(o);
}
public void visitExpressionStatement(@NotNull JaiExpressionStatement o) {
visitPsiElement(o);
}
public void visitForNames(@NotNull JaiForNames o) {
visitPsiElement(o);
}
public void visitForStatement(@NotNull JaiForStatement o) {
visitPsiElement(o);
}
public void visitIfStatement(@NotNull JaiIfStatement o) {
visitPsiElement(o);
}
public void visitIfxExpr(@NotNull JaiIfxExpr o) {
visitExpr(o);
}
public void visitIndexExpr(@NotNull JaiIndexExpr o) {
visitExpr(o);
}
public void visitInitializer(@NotNull JaiInitializer o) {
visitPsiElement(o);
}
public void visitInlineExpr(@NotNull JaiInlineExpr o) {
visitExpr(o);
}
public void visitInterfaceExpr(@NotNull JaiInterfaceExpr o) {
visitExpr(o);
}
public void visitLambdaExpr(@NotNull JaiLambdaExpr o) {
visitExpr(o);
}
public void visitLiteralExpr(@NotNull JaiLiteralExpr o) {
visitExpr(o);
}
public void visitMemberExpr(@NotNull JaiMemberExpr o) {
visitExpr(o);
}
public void visitMemberName(@NotNull JaiMemberName o) {
visitPsiElement(o);
}
public void visitMulExpr(@NotNull JaiMulExpr o) {
visitExpr(o);
}
public void visitNoteStatement(@NotNull JaiNoteStatement o) {
visitPsiElement(o);
}
public void visitOperatorDeclaration(@NotNull JaiOperatorDeclaration o) {
visitPsiElement(o);
}
public void visitOperatorSymbol(@NotNull JaiOperatorSymbol o) {
visitPsiElement(o);
}
public void visitOrExpr(@NotNull JaiOrExpr o) {
visitExpr(o);
}
public void visitParamName(@NotNull JaiParamName o) {
visitPsiElement(o);
}
public void visitParamNames(@NotNull JaiParamNames o) {
visitPsiElement(o);
}
public void visitParameter(@NotNull JaiParameter o) {
visitPsiElement(o);
}
public void visitParenExpr(@NotNull JaiParenExpr o) {
visitExpr(o);
}
public void visitPrefixExpr(@NotNull JaiPrefixExpr o) {
visitExpr(o);
}
public void visitPrimaryExpr(@NotNull JaiPrimaryExpr o) {
visitExpr(o);
}
public void visitProcLiteralExpr(@NotNull JaiProcLiteralExpr o) {
visitExpr(o);
}
public void visitProcModifier(@NotNull JaiProcModifier o) {
visitPsiElement(o);
}
public void visitPushContextStatement(@NotNull JaiPushContextStatement o) {
visitPsiElement(o);
}
public void visitRangeExpr(@NotNull JaiRangeExpr o) {
visitExpr(o);
}
public void visitRefExpr(@NotNull JaiRefExpr o) {
visitExpr(o);
}
public void visitRelationalExpr(@NotNull JaiRelationalExpr o) {
visitExpr(o);
}
public void visitRemoveStatement(@NotNull JaiRemoveStatement o) {
visitPsiElement(o);
}
public void visitReturnGroup(@NotNull JaiReturnGroup o) {
visitPsiElement(o);
}
public void visitReturnItem(@NotNull JaiReturnItem o) {
visitPsiElement(o);
}
public void visitReturnStatement(@NotNull JaiReturnStatement o) {
visitPsiElement(o);
}
public void visitShiftExpr(@NotNull JaiShiftExpr o) {
visitExpr(o);
}
public void visitStatement(@NotNull JaiStatement o) {
visitPsiElement(o);
}
public void visitStructExpr(@NotNull JaiStructExpr o) {
visitExpr(o);
}
public void visitStructLiteralExpr(@NotNull JaiStructLiteralExpr o) {
visitExpr(o);
}
public void visitSwitchBody(@NotNull JaiSwitchBody o) {
visitPsiElement(o);
}
public void visitTypedArrayLiteralExpr(@NotNull JaiTypedArrayLiteralExpr o) {
visitExpr(o);
}
public void visitTypedStructLiteralExpr(@NotNull JaiTypedStructLiteralExpr o) {
visitExpr(o);
}
public void visitUnaryDotExpr(@NotNull JaiUnaryDotExpr o) {
visitExpr(o);
}
public void visitUninitializedExpr(@NotNull JaiUninitializedExpr o) {
visitExpr(o);
}
public void visitUnionExpr(@NotNull JaiUnionExpr o) {
visitExpr(o);
}
public void visitUsingStatement(@NotNull JaiUsingStatement o) {
visitPsiElement(o);
}
public void visitWhileStatement(@NotNull JaiWhileStatement o) {
visitPsiElement(o);
}
public void visitPsiElement(@NotNull PsiElement o) {
visitElement(o);
}
}

View File

@@ -0,0 +1,16 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.psi.PsiElement;
public interface JaiWhileStatement extends PsiElement {
@NotNull
JaiExpr getExpr();
@NotNull
JaiStatement getStatement();
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiAddExprImpl extends JaiExprImpl implements JaiAddExpr {
public JaiAddExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitAddExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiExpr.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiAndExprImpl extends JaiExprImpl implements JaiAndExpr {
public JaiAndExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitAndExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiExpr.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import dev.hgh.jai.psi.*;
public class JaiArgumentImpl extends ASTWrapperPsiElement implements JaiArgument {
public JaiArgumentImpl(@NotNull ASTNode node) {
super(node);
}
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitArgument(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@Nullable
public JaiExpr getExpr() {
return findChildByClass(JaiExpr.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiArrayLiteralExprImpl extends JaiExprImpl implements JaiArrayLiteralExpr {
public JaiArrayLiteralExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitArrayLiteralExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiArgument> getArgumentList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiArgument.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiArrayTypeExprImpl extends JaiExprImpl implements JaiArrayTypeExpr {
public JaiArrayTypeExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitArrayTypeExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiExpr.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiAssignExprImpl extends JaiExprImpl implements JaiAssignExpr {
public JaiAssignExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitAssignExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiExpr.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiAutoCastExprImpl extends JaiExprImpl implements JaiAutoCastExpr {
public JaiAutoCastExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitAutoCastExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@Nullable
public JaiExpr getExpr() {
return findChildByClass(JaiExpr.class);
}
}

View File

@@ -0,0 +1,30 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiBacktickExprImpl extends JaiExprImpl implements JaiBacktickExpr {
public JaiBacktickExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitBacktickExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiBitAndExprImpl extends JaiExprImpl implements JaiBitAndExpr {
public JaiBitAndExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitBitAndExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiExpr.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiBitOrExprImpl extends JaiExprImpl implements JaiBitOrExpr {
public JaiBitOrExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitBitOrExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiExpr.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiBitXorExprImpl extends JaiExprImpl implements JaiBitXorExpr {
public JaiBitXorExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitBitXorExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiExpr.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import dev.hgh.jai.psi.*;
public class JaiBlockImpl extends ASTWrapperPsiElement implements JaiBlock {
public JaiBlockImpl(@NotNull ASTNode node) {
super(node);
}
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitBlock(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiStatement> getStatementList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiStatement.class);
}
}

View File

@@ -0,0 +1,30 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import dev.hgh.jai.psi.*;
public class JaiBreakStatementImpl extends ASTWrapperPsiElement implements JaiBreakStatement {
public JaiBreakStatementImpl(@NotNull ASTNode node) {
super(node);
}
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitBreakStatement(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiBuiltinCallExprImpl extends JaiExprImpl implements JaiBuiltinCallExpr {
public JaiBuiltinCallExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitBuiltinCallExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiArgument> getArgumentList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiArgument.class);
}
}

View File

@@ -0,0 +1,42 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiCallExprImpl extends JaiExprImpl implements JaiCallExpr {
public JaiCallExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitCallExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiArgument> getArgumentList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiArgument.class);
}
@Override
@NotNull
public JaiExpr getExpr() {
return findNotNullChildByClass(JaiExpr.class);
}
}

View File

@@ -0,0 +1,42 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import dev.hgh.jai.psi.*;
public class JaiCaseClauseImpl extends ASTWrapperPsiElement implements JaiCaseClause {
public JaiCaseClauseImpl(@NotNull ASTNode node) {
super(node);
}
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitCaseClause(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@Nullable
public JaiExpr getExpr() {
return findChildByClass(JaiExpr.class);
}
@Override
@NotNull
public List<JaiStatement> getStatementList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiStatement.class);
}
}

View File

@@ -0,0 +1,36 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import dev.hgh.jai.psi.*;
public class JaiCastExprImpl extends JaiExprImpl implements JaiCastExpr {
public JaiCastExprImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitCastExpr(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public List<JaiExpr> getExprList() {
return PsiTreeUtil.getChildrenOfTypeAsList(this, JaiExpr.class);
}
}

View File

@@ -0,0 +1,30 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import dev.hgh.jai.psi.*;
public class JaiContinueStatementImpl extends ASTWrapperPsiElement implements JaiContinueStatement {
public JaiContinueStatementImpl(@NotNull ASTNode node) {
super(node);
}
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitContinueStatement(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
}

View File

@@ -0,0 +1,30 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import dev.hgh.jai.psi.*;
public class JaiDeclNamesImpl extends ASTWrapperPsiElement implements JaiDeclNames {
public JaiDeclNamesImpl(@NotNull ASTNode node) {
super(node);
}
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitDeclNames(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
}

View File

@@ -0,0 +1,42 @@
// This is a generated file. Not intended for manual editing.
package dev.hgh.jai.psi.impl;
import java.util.List;
import org.jetbrains.annotations.*;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.util.PsiTreeUtil;
import static dev.hgh.jai.psi.JaiTypes.*;
import com.intellij.extapi.psi.ASTWrapperPsiElement;
import dev.hgh.jai.psi.*;
public class JaiDeclarationImpl extends ASTWrapperPsiElement implements JaiDeclaration {
public JaiDeclarationImpl(@NotNull ASTNode node) {
super(node);
}
public void accept(@NotNull JaiVisitor visitor) {
visitor.visitDeclaration(this);
}
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JaiVisitor) accept((JaiVisitor)visitor);
else super.accept(visitor);
}
@Override
@NotNull
public JaiDeclNames getDeclNames() {
return findNotNullChildByClass(JaiDeclNames.class);
}
@Override
@Nullable
public JaiInitializer getInitializer() {
return findChildByClass(JaiInitializer.class);
}
}

Some files were not shown because too many files have changed in this diff Show More