- /*
- * Minecraft Development for IntelliJ
- *
- * https://mcdev.io/
- *
- * Copyright (C) 2024 minecraft-dev
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 3.0 only.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
- {
- parserClass="com.demonwav.mcdev.platform.mcp.aw.gen.parser.AwParser"
- extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
- psiClassPrefix="Aw"
- psiImplClassSuffix="Impl"
- psiPackage="com.demonwav.mcdev.platform.mcp.aw.gen.psi"
- psiImplPackage="com.demonwav.mcdev.platform.mcp.aw.gen.psi.impl"
- elementTypeHolderClass="com.demonwav.mcdev.platform.mcp.aw.gen.psi.AwTypes"
- elementTypeClass="com.demonwav.mcdev.platform.mcp.aw.psi.AwElementType"
- tokenTypeClass="com.demonwav.mcdev.platform.mcp.aw.psi.AwTokenType"
- consumeTokenMethod="consumeTokenFast"
- }
- aw_file ::= header_line line*
- private header_line ::= !<<eof>> header COMMENT? end_line
- private line ::= !<<eof>> entry? COMMENT? end_line
- private end_line ::= crlf | <<eof>>
- header ::= HEADER_NAME HEADER_VERSION_ELEMENT HEADER_NAMESPACE_ELEMENT {
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwHeaderImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwHeaderMixin"
- }
- private entry ::= class_entry | method_entry | field_entry {
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwEntryImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwEntryMixin"
- recoverWhile = line_recover
- }
- class_entry ::= access class_literal class_name {
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwClassEntryImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwClassEntryMixin"
- }
- method_entry ::= access method_literal class_name member_name method_desc{
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwMethodEntryImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwMethodEntryMixin"
- }
- field_entry ::= access field_literal class_name member_name field_desc{
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwFieldEntryImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwFieldEntryMixin"
- }
- private line_recover ::= !(end_line | COMMENT)
- access ::= ACCESS_ELEMENT {
- methods=[
- accessElement="ACCESS_ELEMENT"
- ]
- }
- class_literal ::= CLASS_ELEMENT
- method_literal ::= METHOD_ELEMENT
- field_literal ::= FIELD_ELEMENT
- class_name ::= CLASS_NAME_ELEMENT {
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwClassNameImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwClassNameMixin"
- methods=[
- classNameElement="CLASS_NAME_ELEMENT"
- ]
- }
- member_name ::= NAME_ELEMENT {
- mixin= "com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwMemberNameImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwMemberNameMixin"
- methods=[
- nameElement="NAME_ELEMENT"
- ]
- }
- method_desc ::= OPEN_PAREN desc_element* CLOSE_PAREN desc_element
- field_desc ::= desc_element
- desc_element ::= PRIMITIVE | CLASS_VALUE {
- mixin= "com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwDescElementImplMixin"
- implements= "com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwDescElementMixin"
- methods=[
- primitive="PRIMITIVE"
- classValue="CLASS_VALUE"
- ]
- }
- /*
- * Minecraft Development for IntelliJ
- *
- * https://mcdev.io/
- *
- * Copyright (C) 2025 minecraft-dev
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 3.0 only.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
- {
- parserClass="com.demonwav.mcdev.platform.mcp.aw.gen.parser.AwParser"
- extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
- psiClassPrefix="Aw"
- psiImplClassSuffix="Impl"
- psiPackage="com.demonwav.mcdev.platform.mcp.aw.gen.psi"
- psiImplPackage="com.demonwav.mcdev.platform.mcp.aw.gen.psi.impl"
- elementTypeHolderClass="com.demonwav.mcdev.platform.mcp.aw.gen.psi.AwTypes"
- elementTypeClass="com.demonwav.mcdev.platform.mcp.aw.psi.AwElementType"
- tokenTypeClass="com.demonwav.mcdev.platform.mcp.aw.psi.AwTokenType"
- consumeTokenMethod="consumeTokenFast"
- }
- aw_file ::= header_line line*
- private header_line ::= !<<eof>> header COMMENT? end_line
- private line ::= !<<eof>> entry? COMMENT? end_line
- private end_line ::= crlf | <<eof>>
- header ::= HEADER_NAME HEADER_VERSION_ELEMENT HEADER_NAMESPACE_ELEMENT {
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwHeaderImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwHeaderMixin"
- }
- private entry ::= class_entry | method_entry | field_entry {
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwEntryImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwEntryMixin"
- recoverWhile = line_recover
- }
- class_entry ::= access class_literal class_name {
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwClassEntryImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwClassEntryMixin"
- }
- method_entry ::= access method_literal class_name member_name method_desc{
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwMethodEntryImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwMethodEntryMixin"
- }
- field_entry ::= access field_literal class_name member_name field_desc{
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwFieldEntryImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwFieldEntryMixin"
- }
- private line_recover ::= !(end_line | COMMENT)
- access ::= ACCESS_ELEMENT {
- methods=[
- accessElement="ACCESS_ELEMENT"
- ]
- }
- class_literal ::= CLASS_ELEMENT
- method_literal ::= METHOD_ELEMENT
- field_literal ::= FIELD_ELEMENT
- class_name ::= CLASS_NAME_ELEMENT {
- mixin="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwClassNameImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwClassNameMixin"
- methods=[
- classNameElement="CLASS_NAME_ELEMENT"
- ]
- }
- member_name ::= NAME_ELEMENT {
- mixin= "com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwMemberNameImplMixin"
- implements="com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwMemberNameMixin"
- methods=[
- nameElement="NAME_ELEMENT"
- ]
- }
- method_desc ::= OPEN_PAREN desc_element* CLOSE_PAREN desc_element
- field_desc ::= desc_element
- desc_element ::= PRIMITIVE | CLASS_VALUE {
- mixin= "com.demonwav.mcdev.platform.mcp.aw.psi.mixins.impl.AwDescElementImplMixin"
- implements= "com.demonwav.mcdev.platform.mcp.aw.psi.mixins.AwDescElementMixin"
- methods=[
- primitive="PRIMITIVE"
- classValue="CLASS_VALUE"
- ]
- }