- /*
- * 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="io.mcdev.obfex.formats.proguard.gen.parser.ProGuardParser"
- extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
- psiClassPrefix="ProGuard"
- psiImplClassSuffix="Impl"
- psiPackage="io.mcdev.obfex.formats.proguard.gen.psi"
- psiImplPackage="io.mcdev.obfex.formats.proguard.gen.psi.impl"
- elementTypeHolderClass="io.mcdev.obfex.formats.proguard.gen.psi.ProGuardTypes"
- elementTypeClass="io.mcdev.obfex.formats.proguard.lang.psi.ProGuardElementType"
- tokenTypeClass="io.mcdev.obfex.formats.proguard.lang.psi.ProGuardTokenType"
- tokens=[
- COMMENT="regexp:\s*#.*"
- ]
- }
- proguard_file ::= entry*
- private entry ::= !<<eof>> class_mapping?
- class_mapping ::= identifier POINTER identifier COLON member_mapping* {
- methods=[
- fromName="/class_name[0]"
- toName="/class_name[1]"
- ]
- }
- member_mapping ::= method_mapping | field_mapping
- field_mapping ::= type_desc field_name POINTER field_name {
- methods=[
- fromName="/field_name[0]"
- toName="/field_name[1]"
- ]
- }
- field_name ::= identifier | NUMBER
- method_mapping ::= (NUMBER COLON NUMBER COLON)? return_type method_name method_signature POINTER method_name
- return_type ::= type_desc
- method_name ::= identifier | INIT | CLINIT
- method_signature ::= OPEN_PAREN (param_type (COMMA param_type)*)? CLOSE_PAREN {pin=1}
- param_type ::= type_desc
- identifier ::= NAME_ELEMENT (DOT (NAME_ELEMENT | PACKAGE_INFO))* {pin(".*")=1}
- type_desc ::= (identifier | PRIMITIVE) ARRAY_BRACKETS*
- /*
- * 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="io.mcdev.obfex.formats.proguard.gen.parser.ProGuardParser"
- extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
- psiClassPrefix="ProGuard"
- psiImplClassSuffix="Impl"
- psiPackage="io.mcdev.obfex.formats.proguard.gen.psi"
- psiImplPackage="io.mcdev.obfex.formats.proguard.gen.psi.impl"
- elementTypeHolderClass="io.mcdev.obfex.formats.proguard.gen.psi.ProGuardTypes"
- elementTypeClass="io.mcdev.obfex.formats.proguard.lang.psi.ProGuardElementType"
- tokenTypeClass="io.mcdev.obfex.formats.proguard.lang.psi.ProGuardTokenType"
- tokens=[
- COMMENT="regexp:\s*#.*"
- ]
- }
- proguard_file ::= entry*
- private entry ::= !<<eof>> class_mapping?
- class_mapping ::= identifier POINTER identifier COLON member_mapping* {
- methods=[
- fromName="/class_name[0]"
- toName="/class_name[1]"
- ]
- }
- member_mapping ::= method_mapping | field_mapping
- field_mapping ::= type_desc field_name POINTER field_name {
- methods=[
- fromName="/field_name[0]"
- toName="/field_name[1]"
- ]
- }
- field_name ::= identifier | NUMBER
- method_mapping ::= (NUMBER COLON NUMBER COLON)? return_type method_name method_signature POINTER method_name
- return_type ::= type_desc
- method_name ::= identifier | INIT | CLINIT
- method_signature ::= OPEN_PAREN (param_type (COMMA param_type)*)? CLOSE_PAREN {pin=1}
- param_type ::= type_desc
- identifier ::= NAME_ELEMENT (DOT (NAME_ELEMENT | PACKAGE_INFO))* {pin(".*")=1}
- type_desc ::= (identifier | PRIMITIVE) ARRAY_BRACKETS*