Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- parserClass="syntaxHighlighting.TAC_parser"
- parserUtilClass="syntaxHighlighting.TAC_parserParserUtil"
- extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
- psiClassPrefix="TAC"
- psiImplClassSuffix="Impl"
- psiPackage="syntaxHighlighting"
- psiImplPackage="syntaxHighlighting.psi.impl"
- elementTypeHolderClass="syntaxHighlighting.TAC_elementTypeHolder"
- elementTypeClass="syntaxHighlighting.psi.TAC_elementType"
- tokenTypeClass="syntaxHighlighting.psi.TAC_tokenType"
- psiImplUtilClass="syntaxHighlighting.psi.impl.TACPsiImplUtil"
- tokens=[
- //CRLF='regexp:\R'
- //NUMBER ='regexp:(-)?[0-9]+'
- //JAVA="regexp:(([A-Za-z])*\.)+([A-Za-z])*(\{(.)*\})?"
- //KEYWORDS="regexp:goto|if|else|catch|caught|return"
- // TYPES
- //JAVATYPE="regexp:(([A-Za-z])*\.)+[A-Z-a-z]*"
- LEVEL="regexp:lv"
- WHITE_SPACE='regexp:\s+'
- COMMENT='regexp://.*'
- STRING="regexp:('([^'\\]|\\.)*'|\"([^\"\\]|\\.)*\")"
- LBRACKET="regexp:\(|\{|\[|<"
- RBRACKET="regexp:\)|\}|\]|>"
- BLOCK_COMMENT="regexp:/\*[^\*/]*\*/"
- COLON=":"
- EQ="="
- SEMI_COLON=";"
- AT="@"
- NL="\n"
- DOT="."
- NUMBER ='regexp:(-)?\d+(\.\d*)?'
- MODIFIER="regexp:public|private|protected|abstract|static|final|default"
- PRIMITIVE_TYPE="regexp:void|boolean|byte|char|short|int|long|float|double"
- STRINGVAR = "regexp:[a-zA-Z$_][a-zA-Z0-9$_]*"
- ]
- }
- // TODO: ClassHead Method*
- tacFile ::= Method*
- private Method ::= MethodHead MethodBody*
- private MethodHead ::= JType LBRACKET modifier* Type MethodName RBRACKET
- private Type ::= (PRIMITIVE_TYPE | JType)('[]')*
- JType ::= (STRINGVAR'.')*STRINGVAR {mixin="syntaxHighlighting.psi.impl.TAC_namedElementImpl"
- implements="syntaxHighlighting.TAC_namedElement"
- methods=[getKey getName setName getNameIdentifier getPresentation]}
- private modifier ::= MODIFIER
- MethodName ::= ('<init>'|'<clinit>'|DefMethodName) params
- private DefMethodName ::= STRINGVAR
- private params ::= ('('(Type ','?)*')')?
- private MethodBody ::= NUMBER COLON (returnInstr|otherInstr|assignmentInstr|methodCallInstr)
- private otherInstr ::= JType EQ reg
- private assignmentInstr ::= reg EQ (NUMBER ('f'|'d')?|STRING|reg)
- private methodCallInstr ::= reg DOT ('<init>'|'<clinit>'|STRINGVAR) ((LBRACKET reg? RBRACKET) | (EQ reg))
- private returnInstr ::= "return" ['{' STRINGVAR '}']
- private reg ::= ["new"] ['{'] (JType|STRINGVAR) ['}']
- property ::= (KEY? SEPARATOR VALUE?) | KEY {mixin="syntaxHighlighting.psi.impl.TAC_namedElementImpl"
- implements="syntaxHighlighting.TAC_namedElement" methods=[getKey getValue getName setName getNameIdentifier getPresentation]}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement