def n_uplet(): return '(', subterm, ap.OneOrMore(',', subterm), ')'
def comment_shell_block(): return arpeggio.OneOrMore( (GrammarBasic.comment_shell, GrammarBasic.newline))
def selection_body(): return ap.Optional(number), '{', ap.OneOrMore(expression), '}', ap.Optional(number), ':-', body def selection(): return [selection_body, selection_nobody]
def program(): return ap.OneOrMore([text, multiline_comment, comment, asp_code, rule_end]) return program
def selection(): return ap.Optional(number), '{', ap.OneOrMore( expression), '}', ap.Optional(number)
def program(): return ap.OneOrMore(instruction, '.') return program
def program(): return ap.OneOrMore([meta, constraint, multirule, rule, head], '.')
def multirule(): return (namedterm, ap.OneOrMore(';', namedterm)), ':-', body
def oneLineTag(): return (beginOneLineTag, ar.OneOrMore(tag, sep=separator), ar.Optional(':', textUntilNewLine))
def tagSelected(): return (beginTag, ar.OneOrMore(tag, sep=separator), ar.Optional(':', text), [endTag, ar.EOF])
def tagOptions(): return ar.OneOrMore(space, keyWords, space, sep=",", skipw=True)