protected def visit()

in scala/conversion/src/org/jetbrains/plugins/scala/conversion/visitors/SimplePrintVisitor.scala [36:122]


  protected def visit(node: IntermediateNode): Unit = node match {
    case m: MainConstruction => m.children.foreach(visit)
    case t@TypeConstruction(inType) => visitType(t, inType)
    case ParametrizedConstruction(inType, parts) => visitParametrizedType(inType, parts)
    case ArrayConstruction(inType) => visitArrayType(inType)
    case TypeParameters(data) => visitTypeParameters(data)
    case TypeParameterConstruction(name, types) =>
      visitTypeParameterConstruction(name, types)
    case AnnotationConstruction(inAnnotation, attributes, name) =>
      visitAnnotation(inAnnotation, attributes, name)
    case BlockConstruction(statements) =>
      visitBlockStatements(statements)
    case c@ClassConstruction(name, primaryConstructor, bodyElements, modifiers, typeParams, initializers, classType, companion, extendsList) =>
      visitClass(c, name, primaryConstructor, bodyElements,
        modifiers, typeParams, initializers, classType, companion, extendsList)
    case a@AnonymousClass(mType, args, body, extendsList) => visitAnonymousClass(a, mType, args, body, extendsList)
    case e@Enum(name, modifiers, members) => visitEnum(e, name, modifiers, members)
    case ArrayAccess(expression, idxExpression) => visitArrayAccess(expression, idxExpression)
    case c@ClassCast(operand, castType, _) => visitCastType(c, operand, castType)
    case ArrayInitializer(expressions: Seq[IntermediateNode]) => visitArrayInitializer(expressions)
    case BinaryExpressionConstruction(firstPart, secondPart, operation: String, inExpression: Boolean) =>
      visitBinary(firstPart, secondPart, operation, inExpression)
    case ClassObjectAccess(expression) => visitClassObjAccess(expression)
    case InstanceOfConstruction(operand, mtype) => visitInstanceOf(operand, mtype)
    case QualifiedExpression(qualifier, identifier) => visitQualifiedExpression(qualifier, identifier)
    case MethodCallExpression(method, args, withSideEffects) => visitMethodCall(method, args, withSideEffects)
    case ExpressionList(data) => visitExpressionList(data)
    case ThisExpression(value) => visitWithExtraWord(value, "this")
    case SuperExpression(value) => visitWithExtraWord(value, "super")
    case LiteralExpression(literal) => printer.append(literal)
    case NameIdentifier(name) => printer.append(escapeKeyword(name))
    case ParenthesizedExpression(value) => visitParenthesizedExpression(value)
    case NewExpression(mtype, arrayInitializer, arrayDimension) =>
      visitNewExpression(mtype, arrayInitializer, arrayDimension)
    case AnonymousClassExpression(anonymousClass) => visitAnonymousClassExpression(anonymousClass)
    case FunctionalExpression(params, body) => visitFunctionalExpression(params, body)
    case PolyadicExpression(args, operation) => visitPoliadic(args, operation)
    case RangeExpression(from, to, inclusive, descending) => visitRange(from, to, inclusive, descending)
    case PrefixExpression(operand, signType, canBeSimplified) => visitPrefixPostfix(operand, signType, canBeSimplified)
    case PostfixExpression(operand, signType, canBeSimplified) =>
      visitPrefixPostfix(operand, signType, canBeSimplified, isPostfix = true)
    case FieldConstruction(modifiers, name, ftype, isVar, initialaizer) =>
      visitVariable(modifiers, name, ftype, isVar, initialaizer)
    case LocalVariable(modifiers, name, ftype, isVar, initialaizer) =>
      visitVariable(modifiers, name, ftype, isVar, initialaizer)
    case ConstructorSimply(_, typeParams, params, body) =>
      visitConstructor(typeParams, params, body)
    case PrimaryConstructor(params, _, _, modifiers) =>
      visitPrimaryConstructor(params, modifiers)
    case MethodConstruction(modifiers, name, typeParams, params, body, retType) =>
      visitMethod(modifiers, name, typeParams, params, body, retType)
    case m@ModifiersConstruction(annotations, modifiers) =>
      visitModifiers(m, annotations, modifiers)
    case SimpleModifier(mtype: ModifierType) => visitSimpleModifier(mtype)
    case ModifierWithExpression(mtype, value) => visitModifierWithExpr(mtype, value)
    case ParameterConstruction(modifiers, name, scCompType, isVar, isArray) =>
      visitParameters(modifiers, name, scCompType, isVar, isArray)
    case ParameterListConstruction(list) => visitParameterList(list)
    //statements
    case r@JavaCodeReferenceStatement(qualifier, parameterList, name) =>
      visitJavaCodeRef(r, qualifier, parameterList, name)
    case IfStatement(condition, thenBranch, elseBranch) => visitIfStatement(condition, thenBranch, elseBranch)
    case r@ReturnStatement(value) =>
      visitWithExtraWord(Some(value), if (r.canDropReturnKeyword) "" else "return ")
    case ThrowStatement(value) => visitWithExtraWord(Some(value), "throw ")
    case AssertStatement(condition, description) => visitAssert(condition, description)
    case ImportStatement(importValue, onDemand) => visitImportStatement(importValue, onDemand)
    case ImportStatementList(data) => visitImportStatementList(data)
    case PackageStatement(value) => visitWithExtraWord(Some(value), "package ")
    case ForeachStatement(iterParamName, iteratedValue, body, isJavaCollection) =>
      visitForEach(iterParamName, iteratedValue, body, isJavaCollection)
    case w@WhileStatement(initialization, condition, body, update, whileType) =>
      visitWhile(w, initialization, condition, body, update, whileType)
    case TryCatchStatement(resourcesList, tryBlock, catchStatements, finallyStatements, arrow) =>
      visitTryCatch(resourcesList, tryBlock, catchStatements, finallyStatements, arrow)
    case sb: SwitchBlock =>
      visitSwitchBlock(sb)
    case SwitchLabelStatement(caseValues, guardExpression, arrow, body) =>
      visitSwitchLabelStatement(caseValues, guardExpression, arrow, body)
    case SynchronizedStatement(lock, body) =>
      visitSynchronizedStatement(lock, body)
    case ExpressionListStatement(exprs) => visitExpressionListStatement(exprs)
    case EnumConstruction(name) => visit(name)
    case NotSupported(n, msg) => visitNotSupported(n, msg)
    case EmptyConstruction() =>
    case EmptyTypeNode() =>
  }