You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
791 B
Go

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
}