package shell type Pipe struct { BaseToken } type PipeParameters struct { StatementParameters } func (p *PipeParameters) SubParsers() []Parser { return []Parser{ &BaseParser{ parameters: &StatementParameters{}, }, } } func (p *PipeParameters) Supports(charsBefore []rune, r rune) bool { if r == '|' { return len(charsBefore) == 0 || countBackslashSuffixes(charsBefore)%2 == 0 } return false } func (p *PipeParameters) MakeToken() Token { return &Pipe{} }