package shell type WhitespaceParameters struct{} func (p *WhitespaceParameters) SubParsers() []Parser { return []Parser{ &BaseParser{ parameters: &WhitespaceParameters{}, }, } } func (p *WhitespaceParameters) Supports(charsBefore []rune, r rune) bool { return isWhitespace(r) } func (p *WhitespaceParameters) ShouldLeave(charsBefore []rune, r rune) bool { return !p.Supports(charsBefore, r) } func (p *WhitespaceParameters) MakeToken() Token { return &Whitespace{} } type Whitespace struct { tokens []Token } func (q *Whitespace) AddToken(s Token) { q.tokens = append(q.tokens, s) } func (q *Whitespace) Tokens() []Token { return q.tokens } func (q *Whitespace) String() string { var str string for _, t := range q.Tokens() { str += t.String() } return str }