All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.org.antlr.v4.kotlinruntime.tree.xpath.XPathTokenElement.kt Maven / Gradle / Ivy

// Copyright 2017-present Strumenta and contributors, licensed under Apache 2.0.
// Copyright 2024-present Strumenta and contributors, licensed under BSD 3-Clause.
package org.antlr.v4.kotlinruntime.tree.xpath

import org.antlr.v4.kotlinruntime.tree.ParseTree
import org.antlr.v4.kotlinruntime.tree.TerminalNode
import org.antlr.v4.kotlinruntime.tree.Trees

@Suppress("MemberVisibilityCanBePrivate")
public open class XPathTokenElement(tokenName: String, protected var tokenType: Int) : XPathElement(tokenName) {
  override fun evaluate(t: ParseTree): Collection {
    // Return all children of t that match nodeName
    val children = Trees.getChildren(t)
    val nodes = ArrayList(children.size)

    for (c in children) {
      if (c is TerminalNode) {
        if (c.symbol.type == tokenType && !invert || c.symbol.type != tokenType && invert) {
          nodes.add(c)
        }
      }
    }

    return nodes
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy