func proceed(i *TypeOneI, rdr fancy.Reader) { for !i.Done { t, _ := ps.Token(rdr) // fmt.Printf("Stack: %v\n", util.StringArray(i.St.Dump())); // fmt.Printf("--- %s\n", t); if len(t) < 1 { break } b, _ := rdr.ReadByte() if b > 32 { rdr.UnreadByte() } if len(t) == 0 { break } if d, ok := find(i, "/"+string(t)); ok { if d[0] == '{' { proceed(i, fancy.SliceReader(d[1:len(d)-1])) } else { i.St.Push(d) } } else if f, ok := Ops[string(t)]; ok { f(i) } else { i.St.Push(t) } } return }
func skipComment(f fancy.Reader) { for { c, err := f.ReadByte() if err != nil || c == 13 || c == 10 { break } } }
func skipSpaces(f fancy.Reader) byte { for { c, err := f.ReadByte() if err != nil { break } if c > 32 { return c } } return 0 }
func skipString(f fancy.Reader) { for depth := 1; depth > 0; { c, err := f.ReadByte() if err != nil { break } switch c { case '(': depth++ case ')': depth-- case '\\': f.ReadByte() } } }
func skipToDelim(f fancy.Reader) byte { for { c, err := f.ReadByte() if err != nil { break } if c < 33 { return c } switch c { case '<', '>', '(', ')', '[', ']', '/', '%', '{', '}': return c } } return 255 }
func SkipLE(f fancy.Reader) { for { c, err := f.ReadByte() if err != nil { return } if c > 32 { f.UnreadByte() return } if c == 13 { c, err = f.ReadByte() if err == nil && c != 10 { f.UnreadByte() } return } if c == 10 { return } } }