import {chunk,any,rangeOf,anyOf,subRule,zeroOrMore,oneOrMore,optional,sequence,label, gather} from 'pegjs-builder/lib/peg/patterns' export = { isToken: true, isIgnore: false, name: 'keyword', body: [ sequence( oneOrMore(anyOf( rangeOf('a', 'z'), rangeOf('A', 'Z'), rangeOf('0', '9'), chunk('_') )), zeroOrMore(gather(sequence( chunk(' '), oneOrMore(anyOf( rangeOf('a', 'z'), rangeOf('A', 'Z'), rangeOf('0', '9'), chunk('_') ))) )) ) ] }
import {chunk,any,rangeOf,anyOf,subRule,zeroOrMore,oneOrMore,optional,sequence,label,gather} from 'pegjs-builder/lib/peg/patterns' export = { isToken: false, name: 'testFile', body: [ sequence( zeroOrMore(gather(sequence( subRule('whitespace'), subRule('testCase') ))), subRule('whitespace') ) ] }
let expandPatternForToken = function (pattern:Pattern) { return sequence( pattern, optional(subRule('whitespace')) ) }
import {chunk,any,rangeOf,anyOf,subRule,zeroOrMore,oneOrMore,optional,sequence,label} from 'pegjs-builder/lib/peg/patterns' // ' ' ' ' [ \t]* // '\t' [ \t]* export = { isToken: true, isIgnore: false, name: 'seperator', body: [ sequence( chunk(' '), chunk(' '), zeroOrMore(anyOf( chunk(' \t') )) ), sequence( chunk('\t'), zeroOrMore(anyOf( chunk(' \t') )) ) ] }
import {chunk,any,rangeOf,anyOf,subRule,zeroOrMore,oneOrMore,optional,sequence,label} from 'pegjs-builder/lib/peg/patterns' // [a-zA-Z_][a-zA-Z0-9_ ]* export = { isToken: true, isIgnore: false, name: 'testCaseName', body: [ sequence( anyOf( rangeOf('a', 'z'), rangeOf('A', 'Z'), chunk('_') ), oneOrMore(anyOf( rangeOf('a', 'z'), rangeOf('A', 'Z'), rangeOf('0', '9'), chunk('_ ') )) ) ] }
import {chunk,any,rangeOf,anyOf,subRule,zeroOrMore,oneOrMore,optional,sequence,label} from 'pegjs-builder/lib/peg/patterns' // [a-zA-Z_][a-zA-Z0-9_ ]* export = { isToken: true, isIgnore: false, name: 'argument', body: [ sequence( anyOf( rangeOf('a', 'z'), rangeOf('A', 'Z'), chunk('_') ), oneOrMore(anyOf( rangeOf('a', 'z'), rangeOf('A', 'Z'), rangeOf('0', '9'), chunk('_') // todo, argument不能包含空格吗? )) ) ] }
import {chunk,any,rangeOf,anyOf,subRule,zeroOrMore,oneOrMore,optional,sequence,label} from 'pegjs-builder/lib/peg/patterns' // testCaseName endLine testCaseBody export = { isToken: false, name: 'testCase', body: [ sequence( subRule('testCaseName'), subRule('endLine'), subRule('testCaseBody') ) ] }
import {chunk,any,rangeOf,anyOf,subRule,zeroOrMore,oneOrMore,optional,sequence,label,gather} from 'pegjs-builder/lib/peg/patterns' // testCaseCommand export = { isToken: false, name: 'testCaseBody', body: [ sequence( subRule('testCaseCommand'), zeroOrMore(gather(sequence( subRule('endLine'), subRule('testCaseCommand') ))), optional( subRule('endLine') ) ) ] }
import {chunk,any,rangeOf,anyOf,subRule,zeroOrMore,oneOrMore,optional,sequence,label,gather} from 'pegjs-builder/lib/peg/patterns' // seperator keyword (seperator argument)* export = { isToken: false, name: 'testCaseCommand', body: [ sequence( subRule('seperator'), subRule('keyword'), zeroOrMore( gather(sequence( subRule('seperator'), subRule('argument') )) ) ) ] }