Node () { Node node = parseScopeSelector(); if (node == null || getToken() != TextMateSelectorToken.PIPE) { return node; } List<Node> children = new ArrayList<>(); children.add(node); while (getToken() == TextMateSelectorToken.PIPE) { advance(); Node child = parseScopeSelector(); if (child == null) break; children.add(child); } return new Conjunction(children); }