import javascript

query StringOps::Concatenation concatenation() { any() }

query StringOps::ConcatenationOperand concatenationOperand() { any() }

query StringOps::ConcatenationLeaf concatenationLeaf() { any() }

query StringOps::ConcatenationNode concatenationNode() { any() }

query predicate operand(StringOps::ConcatenationNode node, int i, DataFlow::Node child) {
  child = node.getOperand(i)
}

query predicate nextLeaf(StringOps::ConcatenationNode node, DataFlow::Node next) {
  next = node.getNextLeaf()
}

query StringOps::HtmlConcatenationRoot htmlRoot() { any() }

query StringOps::HtmlConcatenationLeaf htmlLeaf() { any() }
