Expr ::= '(' Step ("," Step)* ')'
(n node)
| 440 | |
| 441 | // Expr ::= '(' Step ("," Step)* ')' |
| 442 | func (p *parser) parseSequence(n node) (opnd node) { |
| 443 | p.skipItem(itemLParens) |
| 444 | opnd = p.parseStep(n) |
| 445 | for { |
| 446 | if p.r.typ != itemComma { |
| 447 | break |
| 448 | } |
| 449 | p.next() |
| 450 | opnd2 := p.parseStep(n) |
| 451 | opnd = newOperatorNode("|", opnd, opnd2) |
| 452 | } |
| 453 | p.skipItem(itemRParens) |
| 454 | return opnd |
| 455 | } |
| 456 | |
| 457 | // NodeTest ::= NameTest | nodeType '(' ')' | 'processing-instruction' '(' Literal ')' |
| 458 | func (p *parser) parseNodeTest(n node, axeTyp string, matchType NodeType) (opnd node) { |
no test coverage detected