/*
* Copyright 2013-2016 Sergey Ignatov, Alexander Zolotov, Florin Patan
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// This is a generated file. Not intended for manual editing.
package com.plan9.intel.lang.core.psi;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.PsiElement;
import com.intellij.lang.ASTNode;
import com.plan9.intel.lang.core.lexer.AsmIntelTokenType;
import com.plan9.intel.lang.core.psi.impl.*;
public interface AsmIntelTypes {
IElementType FRAME_SIZE = new AsmIntelElementType("FRAME_SIZE");
IElementType FUNCTION = new AsmIntelElementType("FUNCTION");
IElementType FUNCTION_BODY = new AsmIntelElementType("FUNCTION_BODY");
IElementType FUNCTION_FLAGS = new AsmIntelElementType("FUNCTION_FLAGS");
IElementType FUNCTION_HEADER = new AsmIntelElementType("FUNCTION_HEADER");
IElementType INSTRUCTION_STMT = new AsmIntelElementType("INSTRUCTION_STMT");
IElementType LITERAL = new AsmIntelElementType("LITERAL");
IElementType OPERANDS = new AsmIntelElementType("OPERANDS");
IElementType PREPROCESSOR_DIRECTIVE = new AsmIntelElementType("PREPROCESSOR_DIRECTIVE");
IElementType STATEMENT = new AsmIntelElementType("STATEMENT");
IElementType BIT_OR = new AsmIntelTokenType("|");
IElementType COLON = new AsmIntelTokenType(":");
IElementType COMMA = new AsmIntelTokenType(",");
IElementType FLAG = new AsmIntelTokenType("FLAG");
IElementType HEX = new AsmIntelTokenType("hex");
IElementType IDENTIFIER = new AsmIntelTokenType("identifier");
IElementType IMPORT = new AsmIntelTokenType("import");
IElementType INSTRUCTION = new AsmIntelTokenType("INSTRUCTION");
IElementType INT = new AsmIntelTokenType("int");
IElementType LABEL = new AsmIntelTokenType("LABEL");
IElementType LPAREN = new AsmIntelTokenType("(");
IElementType PSEUDO_REG = new AsmIntelTokenType("PSEUDO_REG");
IElementType RPAREN = new AsmIntelTokenType(")");
IElementType STRING = new AsmIntelTokenType("STRING");
IElementType TEXT = new AsmIntelTokenType("TEXT");
class Factory {
public static PsiElement createElement(ASTNode node) {
IElementType type = node.getElementType();
if (type == FRAME_SIZE) {
return new AsmIntelFrameSizeImpl(node);
}
else if (type == FUNCTION) {
return new AsmIntelFunctionImpl(node);
}
else if (type == FUNCTION_BODY) {
return new AsmIntelFunctionBodyImpl(node);
}
else if (type == FUNCTION_FLAGS) {
return new AsmIntelFunctionFlagsImpl(node);
}
else if (type == FUNCTION_HEADER) {
return new AsmIntelFunctionHeaderImpl(node);
}
else if (type == INSTRUCTION_STMT) {
return new AsmIntelInstructionStmtImpl(node);
}
else if (type == LITERAL) {
return new AsmIntelLiteralImpl(node);
}
else if (type == OPERANDS) {
return new AsmIntelOperandsImpl(node);
}
else if (type == PREPROCESSOR_DIRECTIVE) {
return new AsmIntelPreprocessorDirectiveImpl(node);
}
else if (type == STATEMENT) {
return new AsmIntelStatementImpl(node);
}
throw new AssertionError("Unknown element type: " + type);
}
}
}