/* * Copyright 2000-2013 JetBrains s.r.o. * Copyright 2014-2016 AS3Boyan * Copyright 2014-2014 Elias Ku * * 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.intellij.plugins.haxe.lang.lexer; import com.intellij.psi.tree.IElementType; import com.intellij.psi.PsiElement; import com.intellij.lang.ASTNode; import com.intellij.plugins.haxe.lang.psi.impl.*; public interface HaxeTokenTypes { IElementType ABSTRACT_CLASS_DECLARATION = new HaxeElementType("ABSTRACT_CLASS_DECLARATION"); IElementType ACCESS = new HaxeElementType("ACCESS"); IElementType ADDITIVE_EXPRESSION = new HaxeElementType("ADDITIVE_EXPRESSION"); IElementType ANONYMOUS_FUNCTION_DECLARATION = new HaxeElementType("ANONYMOUS_FUNCTION_DECLARATION"); IElementType ANONYMOUS_TYPE = new HaxeElementType("ANONYMOUS_TYPE"); IElementType ANONYMOUS_TYPE_BODY = new HaxeElementType("ANONYMOUS_TYPE_BODY"); IElementType ANONYMOUS_TYPE_FIELD = new HaxeElementType("ANONYMOUS_TYPE_FIELD"); IElementType ANONYMOUS_TYPE_FIELD_LIST = new HaxeElementType("ANONYMOUS_TYPE_FIELD_LIST"); IElementType ARRAY_ACCESS_EXPRESSION = new HaxeElementType("ARRAY_ACCESS_EXPRESSION"); IElementType ARRAY_LITERAL = new HaxeElementType("ARRAY_LITERAL"); IElementType ASSIGN_EXPRESSION = new HaxeElementType("ASSIGN_EXPRESSION"); IElementType ASSIGN_OPERATION = new HaxeElementType("ASSIGN_OPERATION"); IElementType AUTO_BUILD_MACRO = new HaxeElementType("AUTO_BUILD_MACRO"); IElementType BIND_META = new HaxeElementType("BIND_META"); IElementType BITMAP_META = new HaxeElementType("BITMAP_META"); IElementType BITWISE_EXPRESSION = new HaxeElementType("BITWISE_EXPRESSION"); IElementType BIT_OPERATION = new HaxeElementType("BIT_OPERATION"); IElementType BLOCK_STATEMENT = new HaxeElementType("BLOCK_STATEMENT"); IElementType BREAK_STATEMENT = new HaxeElementType("BREAK_STATEMENT"); IElementType BUILD_MACRO = new HaxeElementType("BUILD_MACRO"); IElementType CALL_EXPRESSION = new HaxeElementType("CALL_EXPRESSION"); IElementType CAST_EXPRESSION = new HaxeElementType("CAST_EXPRESSION"); IElementType CATCH_STATEMENT = new HaxeElementType("CATCH_STATEMENT"); IElementType CLASS_BODY = new HaxeElementType("CLASS_BODY"); IElementType CLASS_DECLARATION = new HaxeElementType("CLASS_DECLARATION"); IElementType COMPARE_EXPRESSION = new HaxeElementType("COMPARE_EXPRESSION"); IElementType COMPARE_OPERATION = new HaxeElementType("COMPARE_OPERATION"); IElementType COMPONENT_NAME = new HaxeElementType("COMPONENT_NAME"); IElementType CONTINUE_STATEMENT = new HaxeElementType("CONTINUE_STATEMENT"); IElementType CORE_API_META = new HaxeElementType("CORE_API_META"); IElementType CUSTOM_META = new HaxeElementType("CUSTOM_META"); IElementType DEBUG_META = new HaxeElementType("DEBUG_META"); IElementType DECLARATION_ATTRIBUTE = new HaxeElementType("DECLARATION_ATTRIBUTE"); IElementType DEFAULT_CASE = new HaxeElementType("DEFAULT_CASE"); IElementType DO_WHILE_STATEMENT = new HaxeElementType("DO_WHILE_STATEMENT"); IElementType ENUM_BODY = new HaxeElementType("ENUM_BODY"); IElementType ENUM_CONSTRUCTOR_PARAMETERS = new HaxeElementType("ENUM_CONSTRUCTOR_PARAMETERS"); IElementType ENUM_DECLARATION = new HaxeElementType("ENUM_DECLARATION"); IElementType ENUM_VALUE_DECLARATION = new HaxeElementType("ENUM_VALUE_DECLARATION"); IElementType EXPRESSION = new HaxeElementType("EXPRESSION"); IElementType EXPRESSION_LIST = new HaxeElementType("EXPRESSION_LIST"); IElementType EXTENDS_DECLARATION = new HaxeElementType("EXTENDS_DECLARATION"); IElementType EXTERN_CLASS_DECLARATION = new HaxeElementType("EXTERN_CLASS_DECLARATION"); IElementType EXTERN_CLASS_DECLARATION_BODY = new HaxeElementType("EXTERN_CLASS_DECLARATION_BODY"); IElementType EXTERN_FUNCTION_DECLARATION = new HaxeElementType("EXTERN_FUNCTION_DECLARATION"); IElementType EXTERN_INTERFACE_DECLARATION = new HaxeElementType("EXTERN_INTERFACE_DECLARATION"); IElementType EXTERN_KEY_WORD = new HaxeElementType("EXTERN_KEY_WORD"); IElementType FAKE_ENUM_META = new HaxeElementType("FAKE_ENUM_META"); IElementType FAT_ARROW_EXPRESSION = new HaxeElementType("FAT_ARROW_EXPRESSION"); IElementType FINAL_META = new HaxeElementType("FINAL_META"); IElementType FOR_STATEMENT = new HaxeElementType("FOR_STATEMENT"); IElementType FUNCTION_DECLARATION_WITH_ATTRIBUTES = new HaxeElementType("FUNCTION_DECLARATION_WITH_ATTRIBUTES"); IElementType FUNCTION_LITERAL = new HaxeElementType("FUNCTION_LITERAL"); IElementType FUNCTION_PROTOTYPE_DECLARATION_WITH_ATTRIBUTES = new HaxeElementType("FUNCTION_PROTOTYPE_DECLARATION_WITH_ATTRIBUTES"); IElementType FUNCTION_TYPE = new HaxeElementType("FUNCTION_TYPE"); IElementType GENERIC_LIST_PART = new HaxeElementType("GENERIC_LIST_PART"); IElementType GENERIC_PARAM = new HaxeElementType("GENERIC_PARAM"); IElementType GETTER_META = new HaxeElementType("GETTER_META"); IElementType HACK_META = new HaxeElementType("HACK_META"); IElementType IDENTIFIER = new HaxeElementType("IDENTIFIER"); IElementType IF_STATEMENT = new HaxeElementType("IF_STATEMENT"); IElementType IMPLEMENTS_DECLARATION = new HaxeElementType("IMPLEMENTS_DECLARATION"); IElementType IMPORT_STATEMENT_REGULAR = new HaxeElementType("IMPORT_STATEMENT_REGULAR"); IElementType IMPORT_STATEMENT_WITH_IN_SUPPORT = new HaxeElementType("IMPORT_STATEMENT_WITH_IN_SUPPORT"); IElementType IMPORT_STATEMENT_WITH_WILDCARD = new HaxeElementType("IMPORT_STATEMENT_WITH_WILDCARD"); IElementType INHERIT_LIST = new HaxeElementType("INHERIT_LIST"); IElementType INTERFACE_BODY = new HaxeElementType("INTERFACE_BODY"); IElementType INTERFACE_DECLARATION = new HaxeElementType("INTERFACE_DECLARATION"); IElementType ITERABLE = new HaxeElementType("ITERABLE"); IElementType ITERATOR_EXPRESSION = new HaxeElementType("ITERATOR_EXPRESSION"); IElementType JS_REQUIRE_META = new HaxeElementType("JS_REQUIRE_META"); IElementType KEEP_META = new HaxeElementType("KEEP_META"); IElementType LITERAL_EXPRESSION = new HaxeElementType("LITERAL_EXPRESSION"); IElementType LOCAL_FUNCTION_DECLARATION = new HaxeElementType("LOCAL_FUNCTION_DECLARATION"); IElementType LOCAL_VAR_DECLARATION = new HaxeElementType("LOCAL_VAR_DECLARATION"); IElementType LOCAL_VAR_DECLARATION_PART = new HaxeElementType("LOCAL_VAR_DECLARATION_PART"); IElementType LOGIC_AND_EXPRESSION = new HaxeElementType("LOGIC_AND_EXPRESSION"); IElementType LOGIC_OR_EXPRESSION = new HaxeElementType("LOGIC_OR_EXPRESSION"); IElementType LONG_TEMPLATE_ENTRY = new HaxeElementType("LONG_TEMPLATE_ENTRY"); IElementType MACRO_CLASS = new HaxeElementType("MACRO_CLASS"); IElementType MACRO_CLASS_LIST = new HaxeElementType("MACRO_CLASS_LIST"); IElementType META_KEY_VALUE = new HaxeElementType("META_KEY_VALUE"); IElementType META_META = new HaxeElementType("META_META"); IElementType MULTIPLICATIVE_EXPRESSION = new HaxeElementType("MULTIPLICATIVE_EXPRESSION"); IElementType NATIVE_META = new HaxeElementType("NATIVE_META"); IElementType NEW_EXPRESSION = new HaxeElementType("NEW_EXPRESSION"); IElementType NO_DEBUG_META = new HaxeElementType("NO_DEBUG_META"); IElementType NS_META = new HaxeElementType("NS_META"); IElementType OBJECT_LITERAL = new HaxeElementType("OBJECT_LITERAL"); IElementType OBJECT_LITERAL_ELEMENT = new HaxeElementType("OBJECT_LITERAL_ELEMENT"); IElementType OVERLOAD_META = new HaxeElementType("OVERLOAD_META"); IElementType PACKAGE_STATEMENT = new HaxeElementType("PACKAGE_STATEMENT"); IElementType PARAMETER = new HaxeElementType("PARAMETER"); IElementType PARAMETER_LIST = new HaxeElementType("PARAMETER_LIST"); IElementType PARENTHESIZED_EXPRESSION = new HaxeElementType("PARENTHESIZED_EXPRESSION"); IElementType PREFIX_EXPRESSION = new HaxeElementType("PREFIX_EXPRESSION"); IElementType PRIVATE_KEY_WORD = new HaxeElementType("PRIVATE_KEY_WORD"); IElementType PROPERTY_ACCESSOR = new HaxeElementType("PROPERTY_ACCESSOR"); IElementType PROPERTY_DECLARATION = new HaxeElementType("PROPERTY_DECLARATION"); IElementType PROTECTED_META = new HaxeElementType("PROTECTED_META"); IElementType REFERENCE_EXPRESSION = new HaxeElementType("REFERENCE_EXPRESSION"); IElementType REGULAR_EXPRESSION_LITERAL = new HaxeElementType("REGULAR_EXPRESSION_LITERAL"); IElementType REQUIRE_META = new HaxeElementType("REQUIRE_META"); IElementType RETURN_STATEMENT = new HaxeElementType("RETURN_STATEMENT"); IElementType RETURN_STATEMENT_WITHOUT_SEMICOLON = new HaxeElementType("RETURN_STATEMENT_WITHOUT_SEMICOLON"); IElementType SETTER_META = new HaxeElementType("SETTER_META"); IElementType SHIFT_EXPRESSION = new HaxeElementType("SHIFT_EXPRESSION"); IElementType SHIFT_OPERATOR = new HaxeElementType("SHIFT_OPERATOR"); IElementType SHIFT_RIGHT_OPERATOR = new HaxeElementType("SHIFT_RIGHT_OPERATOR"); IElementType SHORT_TEMPLATE_ENTRY = new HaxeElementType("SHORT_TEMPLATE_ENTRY"); IElementType SIMPLE_META = new HaxeElementType("SIMPLE_META"); IElementType STRING_LITERAL_EXPRESSION = new HaxeElementType("STRING_LITERAL_EXPRESSION"); IElementType SUFFIX_EXPRESSION = new HaxeElementType("SUFFIX_EXPRESSION"); IElementType SUPER_EXPRESSION = new HaxeElementType("SUPER_EXPRESSION"); IElementType SWITCH_BLOCK = new HaxeElementType("SWITCH_BLOCK"); IElementType SWITCH_CASE = new HaxeElementType("SWITCH_CASE"); IElementType SWITCH_CASE_BLOCK = new HaxeElementType("SWITCH_CASE_BLOCK"); IElementType SWITCH_CASE_EXPRESSION = new HaxeElementType("SWITCH_CASE_EXPRESSION"); IElementType SWITCH_STATEMENT = new HaxeElementType("SWITCH_STATEMENT"); IElementType TERNARY_EXPRESSION = new HaxeElementType("TERNARY_EXPRESSION"); IElementType THIS_EXPRESSION = new HaxeElementType("THIS_EXPRESSION"); IElementType THROW_STATEMENT = new HaxeElementType("THROW_STATEMENT"); IElementType TRY_STATEMENT = new HaxeElementType("TRY_STATEMENT"); IElementType TYPE = new HaxeElementType("TYPE"); IElementType TYPEDEF_DECLARATION = new HaxeElementType("TYPEDEF_DECLARATION"); IElementType TYPE_EXTENDS = new HaxeElementType("TYPE_EXTENDS"); IElementType TYPE_LIST = new HaxeElementType("TYPE_LIST"); IElementType TYPE_LIST_PART = new HaxeElementType("TYPE_LIST_PART"); IElementType TYPE_OR_ANONYMOUS = new HaxeElementType("TYPE_OR_ANONYMOUS"); IElementType TYPE_PARAM = new HaxeElementType("TYPE_PARAM"); IElementType TYPE_TAG = new HaxeElementType("TYPE_TAG"); IElementType UNREFLECTIVE_META = new HaxeElementType("UNREFLECTIVE_META"); IElementType UNSIGNED_SHIFT_RIGHT_OPERATOR = new HaxeElementType("UNSIGNED_SHIFT_RIGHT_OPERATOR"); IElementType USING_STATEMENT = new HaxeElementType("USING_STATEMENT"); IElementType VAR_DECLARATION = new HaxeElementType("VAR_DECLARATION"); IElementType VAR_DECLARATION_PART = new HaxeElementType("VAR_DECLARATION_PART"); IElementType VAR_INIT = new HaxeElementType("VAR_INIT"); IElementType WHILE_STATEMENT = new HaxeElementType("WHILE_STATEMENT"); IElementType WILDCARD = new HaxeElementType("WILDCARD"); IElementType CLOSING_QUOTE = new HaxeElementType("CLOSING_QUOTE"); IElementType CONDITIONAL_STATEMENT_ID = new HaxeElementType("CONDITIONAL_STATEMENT_ID"); IElementType ID = new HaxeElementType("ID"); IElementType KABSTRACT = new HaxeElementType("abstract"); IElementType KAUTOBUILD = new HaxeElementType("@:autoBuild"); IElementType KBIND = new HaxeElementType("@:bind"); IElementType KBITMAP = new HaxeElementType("@:bitmap"); IElementType KBREAK = new HaxeElementType("break"); IElementType KBUILD = new HaxeElementType("@:build"); IElementType KCASE = new HaxeElementType("case"); IElementType KCAST = new HaxeElementType("cast"); IElementType KCATCH = new HaxeElementType("catch"); IElementType KCLASS = new HaxeElementType("class"); IElementType KCONTINUE = new HaxeElementType("continue"); IElementType KCOREAPI = new HaxeElementType("@:core_api"); IElementType KDEBUG = new HaxeElementType("@:debug"); IElementType KDEFAULT = new HaxeElementType("default"); IElementType KDO = new HaxeElementType("do"); IElementType KDYNAMIC = new HaxeElementType("dynamic"); IElementType KELSE = new HaxeElementType("else"); IElementType KENUM = new HaxeElementType("enum"); IElementType KEXTENDS = new HaxeElementType("extends"); IElementType KEXTERN = new HaxeElementType("extern"); IElementType KFAKEENUM = new HaxeElementType("@:fakeEnum"); IElementType KFALSE = new HaxeElementType("false"); IElementType KFINAL = new HaxeElementType("@:final"); IElementType KFOR = new HaxeElementType("for"); IElementType KFUNCTION = new HaxeElementType("function"); IElementType KGETTER = new HaxeElementType("@:getter"); IElementType KHACK = new HaxeElementType("@:hack"); IElementType KIF = new HaxeElementType("if"); IElementType KIMPLEMENTS = new HaxeElementType("implements"); IElementType KIMPORT = new HaxeElementType("import"); IElementType KINLINE = new HaxeElementType("inline"); IElementType KINTERFACE = new HaxeElementType("interface"); IElementType KJSREQUIRE = new HaxeElementType("@:jsRequire"); IElementType KKEEP = new HaxeElementType("@:keep"); IElementType KMACRO = new HaxeElementType("@:macro"); IElementType KMACRO2 = new HaxeElementType("macro"); IElementType KMETA = new HaxeElementType("@:meta"); IElementType KNATIVE = new HaxeElementType("@:native"); IElementType KNEVER = new HaxeElementType("never"); IElementType KNODEBUG = new HaxeElementType("@:nodebug"); IElementType KNS = new HaxeElementType("@:ns"); IElementType KNULL = new HaxeElementType("null"); IElementType KOVERLOAD = new HaxeElementType("@:overload"); IElementType KOVERRIDE = new HaxeElementType("override"); IElementType KPACKAGE = new HaxeElementType("package"); IElementType KPRIVATE = new HaxeElementType("private"); IElementType KPROTECTED = new HaxeElementType("@:protected"); IElementType KPUBLIC = new HaxeElementType("public"); IElementType KREQUIRE = new HaxeElementType("@:require"); IElementType KRETURN = new HaxeElementType("return"); IElementType KSETTER = new HaxeElementType("@:setter"); IElementType KSTATIC = new HaxeElementType("static"); IElementType KSUPER = new HaxeElementType("super"); IElementType KSWITCH = new HaxeElementType("switch"); IElementType KTHIS = new HaxeElementType("this"); IElementType KTHROW = new HaxeElementType("throw"); IElementType KTRUE = new HaxeElementType("true"); IElementType KTRY = new HaxeElementType("try"); IElementType KTYPEDEF = new HaxeElementType("typedef"); IElementType KUNTYPED = new HaxeElementType("untyped"); IElementType KUSING = new HaxeElementType("using"); IElementType KVAR = new HaxeElementType("var"); IElementType KWHILE = new HaxeElementType("while"); IElementType LITFLOAT = new HaxeElementType("LITFLOAT"); IElementType LITHEX = new HaxeElementType("LITHEX"); IElementType LITINT = new HaxeElementType("LITINT"); IElementType LITOCT = new HaxeElementType("LITOCT"); IElementType LONG_TEMPLATE_ENTRY_END = new HaxeElementType("LONG_TEMPLATE_ENTRY_END"); IElementType LONG_TEMPLATE_ENTRY_START = new HaxeElementType("LONG_TEMPLATE_ENTRY_START"); IElementType MACRO_ID = new HaxeElementType("MACRO_ID"); IElementType OARROW = new HaxeElementType("->"); IElementType OASSIGN = new HaxeElementType("="); IElementType OBIT_AND = new HaxeElementType("&"); IElementType OBIT_AND_ASSIGN = new HaxeElementType("&="); IElementType OBIT_OR = new HaxeElementType("|"); IElementType OBIT_OR_ASSIGN = new HaxeElementType("|="); IElementType OBIT_XOR = new HaxeElementType("^"); IElementType OBIT_XOR_ASSIGN = new HaxeElementType("^="); IElementType OCOLON = new HaxeElementType(":"); IElementType OCOMMA = new HaxeElementType(","); IElementType OCOMPLEMENT = new HaxeElementType("~"); IElementType OCOND_AND = new HaxeElementType("&&"); IElementType OCOND_OR = new HaxeElementType("||"); IElementType ODOT = new HaxeElementType("."); IElementType OEQ = new HaxeElementType("=="); IElementType OFAT_ARROW = new HaxeElementType("=>"); IElementType OGREATER = new HaxeElementType(">"); IElementType OIN = new HaxeElementType("in"); IElementType OLESS = new HaxeElementType("<"); IElementType OLESS_OR_EQUAL = new HaxeElementType("<="); IElementType OMINUS = new HaxeElementType("-"); IElementType OMINUS_ASSIGN = new HaxeElementType("-="); IElementType OMINUS_MINUS = new HaxeElementType("--"); IElementType OMUL = new HaxeElementType("*"); IElementType OMUL_ASSIGN = new HaxeElementType("*="); IElementType ONEW = new HaxeElementType("new"); IElementType ONOT = new HaxeElementType("!"); IElementType ONOT_EQ = new HaxeElementType("!="); IElementType OPEN_QUOTE = new HaxeElementType("OPEN_QUOTE"); IElementType OPLUS = new HaxeElementType("+"); IElementType OPLUS_ASSIGN = new HaxeElementType("+="); IElementType OPLUS_PLUS = new HaxeElementType("++"); IElementType OQUEST = new HaxeElementType("?"); IElementType OQUOTIENT = new HaxeElementType("/"); IElementType OQUOTIENT_ASSIGN = new HaxeElementType("/="); IElementType OREMAINDER = new HaxeElementType("%"); IElementType OREMAINDER_ASSIGN = new HaxeElementType("%="); IElementType OSEMI = new HaxeElementType(";"); IElementType OSHIFT_LEFT = new HaxeElementType("<<"); IElementType OSHIFT_LEFT_ASSIGN = new HaxeElementType("<<="); IElementType OTRIPLE_DOT = new HaxeElementType("..."); IElementType PLBRACK = new HaxeElementType("["); IElementType PLCURLY = new HaxeElementType("{"); IElementType PLPAREN = new HaxeElementType("("); IElementType PPELSE = new HaxeElementType("#else"); IElementType PPELSEIF = new HaxeElementType("#elseif"); IElementType PPEND = new HaxeElementType("#end"); IElementType PPERROR = new HaxeElementType("#error"); IElementType PPIF = new HaxeElementType("#if"); IElementType PPTOKEN = new HaxeElementType("pptoken"); IElementType PRBRACK = new HaxeElementType("]"); IElementType PRCURLY = new HaxeElementType("}"); IElementType PRPAREN = new HaxeElementType(")"); IElementType REGULAR_STRING_PART = new HaxeElementType("REGULAR_STRING_PART"); IElementType REG_EXP = new HaxeElementType("REG_EXP"); IElementType SHORT_TEMPLATE_ENTRY_START = new HaxeElementType("SHORT_TEMPLATE_ENTRY_START"); class Factory { public static PsiElement createElement(ASTNode node) { IElementType type = node.getElementType(); if (type == ABSTRACT_CLASS_DECLARATION) { return new HaxeAbstractClassDeclarationImpl(node); } else if (type == ACCESS) { return new HaxeAccessImpl(node); } else if (type == ADDITIVE_EXPRESSION) { return new HaxeAdditiveExpressionImpl(node); } else if (type == ANONYMOUS_FUNCTION_DECLARATION) { return new HaxeAnonymousFunctionDeclarationImpl(node); } else if (type == ANONYMOUS_TYPE) { return new HaxeAnonymousTypeImpl(node); } else if (type == ANONYMOUS_TYPE_BODY) { return new HaxeAnonymousTypeBodyImpl(node); } else if (type == ANONYMOUS_TYPE_FIELD) { return new HaxeAnonymousTypeFieldImpl(node); } else if (type == ANONYMOUS_TYPE_FIELD_LIST) { return new HaxeAnonymousTypeFieldListImpl(node); } else if (type == ARRAY_ACCESS_EXPRESSION) { return new HaxeArrayAccessExpressionImpl(node); } else if (type == ARRAY_LITERAL) { return new HaxeArrayLiteralImpl(node); } else if (type == ASSIGN_EXPRESSION) { return new HaxeAssignExpressionImpl(node); } else if (type == ASSIGN_OPERATION) { return new HaxeAssignOperationImpl(node); } else if (type == AUTO_BUILD_MACRO) { return new HaxeAutoBuildMacroImpl(node); } else if (type == BIND_META) { return new HaxeBindMetaImpl(node); } else if (type == BITMAP_META) { return new HaxeBitmapMetaImpl(node); } else if (type == BITWISE_EXPRESSION) { return new HaxeBitwiseExpressionImpl(node); } else if (type == BIT_OPERATION) { return new HaxeBitOperationImpl(node); } else if (type == BLOCK_STATEMENT) { return new HaxeBlockStatementImpl(node); } else if (type == BREAK_STATEMENT) { return new HaxeBreakStatementImpl(node); } else if (type == BUILD_MACRO) { return new HaxeBuildMacroImpl(node); } else if (type == CALL_EXPRESSION) { return new HaxeCallExpressionImpl(node); } else if (type == CAST_EXPRESSION) { return new HaxeCastExpressionImpl(node); } else if (type == CATCH_STATEMENT) { return new HaxeCatchStatementImpl(node); } else if (type == CLASS_BODY) { return new HaxeClassBodyImpl(node); } else if (type == CLASS_DECLARATION) { return new HaxeClassDeclarationImpl(node); } else if (type == COMPARE_EXPRESSION) { return new HaxeCompareExpressionImpl(node); } else if (type == COMPARE_OPERATION) { return new HaxeCompareOperationImpl(node); } else if (type == COMPONENT_NAME) { return new HaxeComponentNameImpl(node); } else if (type == CONTINUE_STATEMENT) { return new HaxeContinueStatementImpl(node); } else if (type == CORE_API_META) { return new HaxeCoreApiMetaImpl(node); } else if (type == CUSTOM_META) { return new HaxeCustomMetaImpl(node); } else if (type == DEBUG_META) { return new HaxeDebugMetaImpl(node); } else if (type == DECLARATION_ATTRIBUTE) { return new HaxeDeclarationAttributeImpl(node); } else if (type == DEFAULT_CASE) { return new HaxeDefaultCaseImpl(node); } else if (type == DO_WHILE_STATEMENT) { return new HaxeDoWhileStatementImpl(node); } else if (type == ENUM_BODY) { return new HaxeEnumBodyImpl(node); } else if (type == ENUM_CONSTRUCTOR_PARAMETERS) { return new HaxeEnumConstructorParametersImpl(node); } else if (type == ENUM_DECLARATION) { return new HaxeEnumDeclarationImpl(node); } else if (type == ENUM_VALUE_DECLARATION) { return new HaxeEnumValueDeclarationImpl(node); } else if (type == EXPRESSION) { return new HaxeExpressionImpl(node); } else if (type == EXPRESSION_LIST) { return new HaxeExpressionListImpl(node); } else if (type == EXTENDS_DECLARATION) { return new HaxeExtendsDeclarationImpl(node); } else if (type == EXTERN_CLASS_DECLARATION) { return new HaxeExternClassDeclarationImpl(node); } else if (type == EXTERN_CLASS_DECLARATION_BODY) { return new HaxeExternClassDeclarationBodyImpl(node); } else if (type == EXTERN_FUNCTION_DECLARATION) { return new HaxeExternFunctionDeclarationImpl(node); } else if (type == EXTERN_INTERFACE_DECLARATION) { return new HaxeExternInterfaceDeclarationImpl(node); } else if (type == EXTERN_KEY_WORD) { return new HaxeExternKeyWordImpl(node); } else if (type == FAKE_ENUM_META) { return new HaxeFakeEnumMetaImpl(node); } else if (type == FAT_ARROW_EXPRESSION) { return new HaxeFatArrowExpressionImpl(node); } else if (type == FINAL_META) { return new HaxeFinalMetaImpl(node); } else if (type == FOR_STATEMENT) { return new HaxeForStatementImpl(node); } else if (type == FUNCTION_DECLARATION_WITH_ATTRIBUTES) { return new HaxeFunctionDeclarationWithAttributesImpl(node); } else if (type == FUNCTION_LITERAL) { return new HaxeFunctionLiteralImpl(node); } else if (type == FUNCTION_PROTOTYPE_DECLARATION_WITH_ATTRIBUTES) { return new HaxeFunctionPrototypeDeclarationWithAttributesImpl(node); } else if (type == FUNCTION_TYPE) { return new HaxeFunctionTypeImpl(node); } else if (type == GENERIC_LIST_PART) { return new HaxeGenericListPartImpl(node); } else if (type == GENERIC_PARAM) { return new HaxeGenericParamImpl(node); } else if (type == GETTER_META) { return new HaxeGetterMetaImpl(node); } else if (type == HACK_META) { return new HaxeHackMetaImpl(node); } else if (type == IDENTIFIER) { return new HaxeIdentifierImpl(node); } else if (type == IF_STATEMENT) { return new HaxeIfStatementImpl(node); } else if (type == IMPLEMENTS_DECLARATION) { return new HaxeImplementsDeclarationImpl(node); } else if (type == IMPORT_STATEMENT_REGULAR) { return new HaxeImportStatementRegularImpl(node); } else if (type == IMPORT_STATEMENT_WITH_IN_SUPPORT) { return new HaxeImportStatementWithInSupportImpl(node); } else if (type == IMPORT_STATEMENT_WITH_WILDCARD) { return new HaxeImportStatementWithWildcardImpl(node); } else if (type == INHERIT_LIST) { return new HaxeInheritListImpl(node); } else if (type == INTERFACE_BODY) { return new HaxeInterfaceBodyImpl(node); } else if (type == INTERFACE_DECLARATION) { return new HaxeInterfaceDeclarationImpl(node); } else if (type == ITERABLE) { return new HaxeIterableImpl(node); } else if (type == ITERATOR_EXPRESSION) { return new HaxeIteratorExpressionImpl(node); } else if (type == JS_REQUIRE_META) { return new HaxeJsRequireMetaImpl(node); } else if (type == KEEP_META) { return new HaxeKeepMetaImpl(node); } else if (type == LITERAL_EXPRESSION) { return new HaxeLiteralExpressionImpl(node); } else if (type == LOCAL_FUNCTION_DECLARATION) { return new HaxeLocalFunctionDeclarationImpl(node); } else if (type == LOCAL_VAR_DECLARATION) { return new HaxeLocalVarDeclarationImpl(node); } else if (type == LOCAL_VAR_DECLARATION_PART) { return new HaxeLocalVarDeclarationPartImpl(node); } else if (type == LOGIC_AND_EXPRESSION) { return new HaxeLogicAndExpressionImpl(node); } else if (type == LOGIC_OR_EXPRESSION) { return new HaxeLogicOrExpressionImpl(node); } else if (type == LONG_TEMPLATE_ENTRY) { return new HaxeLongTemplateEntryImpl(node); } else if (type == MACRO_CLASS) { return new HaxeMacroClassImpl(node); } else if (type == MACRO_CLASS_LIST) { return new HaxeMacroClassListImpl(node); } else if (type == META_KEY_VALUE) { return new HaxeMetaKeyValueImpl(node); } else if (type == META_META) { return new HaxeMetaMetaImpl(node); } else if (type == MULTIPLICATIVE_EXPRESSION) { return new HaxeMultiplicativeExpressionImpl(node); } else if (type == NATIVE_META) { return new HaxeNativeMetaImpl(node); } else if (type == NEW_EXPRESSION) { return new HaxeNewExpressionImpl(node); } else if (type == NO_DEBUG_META) { return new HaxeNoDebugMetaImpl(node); } else if (type == NS_META) { return new HaxeNsMetaImpl(node); } else if (type == OBJECT_LITERAL) { return new HaxeObjectLiteralImpl(node); } else if (type == OBJECT_LITERAL_ELEMENT) { return new HaxeObjectLiteralElementImpl(node); } else if (type == OVERLOAD_META) { return new HaxeOverloadMetaImpl(node); } else if (type == PACKAGE_STATEMENT) { return new HaxePackageStatementImpl(node); } else if (type == PARAMETER) { return new HaxeParameterImpl(node); } else if (type == PARAMETER_LIST) { return new HaxeParameterListImpl(node); } else if (type == PARENTHESIZED_EXPRESSION) { return new HaxeParenthesizedExpressionImpl(node); } else if (type == PREFIX_EXPRESSION) { return new HaxePrefixExpressionImpl(node); } else if (type == PRIVATE_KEY_WORD) { return new HaxePrivateKeyWordImpl(node); } else if (type == PROPERTY_ACCESSOR) { return new HaxePropertyAccessorImpl(node); } else if (type == PROPERTY_DECLARATION) { return new HaxePropertyDeclarationImpl(node); } else if (type == PROTECTED_META) { return new HaxeProtectedMetaImpl(node); } else if (type == REFERENCE_EXPRESSION) { return new HaxeReferenceExpressionImpl(node); } else if (type == REGULAR_EXPRESSION_LITERAL) { return new HaxeRegularExpressionLiteralImpl(node); } else if (type == REQUIRE_META) { return new HaxeRequireMetaImpl(node); } else if (type == RETURN_STATEMENT) { return new HaxeReturnStatementImpl(node); } else if (type == RETURN_STATEMENT_WITHOUT_SEMICOLON) { return new HaxeReturnStatementWithoutSemicolonImpl(node); } else if (type == SETTER_META) { return new HaxeSetterMetaImpl(node); } else if (type == SHIFT_EXPRESSION) { return new HaxeShiftExpressionImpl(node); } else if (type == SHIFT_OPERATOR) { return new HaxeShiftOperatorImpl(node); } else if (type == SHIFT_RIGHT_OPERATOR) { return new HaxeShiftRightOperatorImpl(node); } else if (type == SHORT_TEMPLATE_ENTRY) { return new HaxeShortTemplateEntryImpl(node); } else if (type == SIMPLE_META) { return new HaxeSimpleMetaImpl(node); } else if (type == STRING_LITERAL_EXPRESSION) { return new HaxeStringLiteralExpressionImpl(node); } else if (type == SUFFIX_EXPRESSION) { return new HaxeSuffixExpressionImpl(node); } else if (type == SUPER_EXPRESSION) { return new HaxeSuperExpressionImpl(node); } else if (type == SWITCH_BLOCK) { return new HaxeSwitchBlockImpl(node); } else if (type == SWITCH_CASE) { return new HaxeSwitchCaseImpl(node); } else if (type == SWITCH_CASE_BLOCK) { return new HaxeSwitchCaseBlockImpl(node); } else if (type == SWITCH_CASE_EXPRESSION) { return new HaxeSwitchCaseExpressionImpl(node); } else if (type == SWITCH_STATEMENT) { return new HaxeSwitchStatementImpl(node); } else if (type == TERNARY_EXPRESSION) { return new HaxeTernaryExpressionImpl(node); } else if (type == THIS_EXPRESSION) { return new HaxeThisExpressionImpl(node); } else if (type == THROW_STATEMENT) { return new HaxeThrowStatementImpl(node); } else if (type == TRY_STATEMENT) { return new HaxeTryStatementImpl(node); } else if (type == TYPE) { return new HaxeTypeImpl(node); } else if (type == TYPEDEF_DECLARATION) { return new HaxeTypedefDeclarationImpl(node); } else if (type == TYPE_EXTENDS) { return new HaxeTypeExtendsImpl(node); } else if (type == TYPE_LIST) { return new HaxeTypeListImpl(node); } else if (type == TYPE_LIST_PART) { return new HaxeTypeListPartImpl(node); } else if (type == TYPE_OR_ANONYMOUS) { return new HaxeTypeOrAnonymousImpl(node); } else if (type == TYPE_PARAM) { return new HaxeTypeParamImpl(node); } else if (type == TYPE_TAG) { return new HaxeTypeTagImpl(node); } else if (type == UNREFLECTIVE_META) { return new HaxeUnreflectiveMetaImpl(node); } else if (type == UNSIGNED_SHIFT_RIGHT_OPERATOR) { return new HaxeUnsignedShiftRightOperatorImpl(node); } else if (type == USING_STATEMENT) { return new HaxeUsingStatementImpl(node); } else if (type == VAR_DECLARATION) { return new HaxeVarDeclarationImpl(node); } else if (type == VAR_DECLARATION_PART) { return new HaxeVarDeclarationPartImpl(node); } else if (type == VAR_INIT) { return new HaxeVarInitImpl(node); } else if (type == WHILE_STATEMENT) { return new HaxeWhileStatementImpl(node); } else if (type == WILDCARD) { return new HaxeWildcardImpl(node); } throw new AssertionError("Unknown element type: " + type); } } }