esc.go 351 B

1234567891011121314151617181920
  1. package parser
  2. // isEscape returns true if byte i is prefixed by an odd number of backslahses.
  3. func isEscape(data []byte, i int) bool {
  4. if i == 0 {
  5. return false
  6. }
  7. if i == 1 {
  8. return data[0] == '\\'
  9. }
  10. j := i - 1
  11. for ; j >= 0; j-- {
  12. if data[j] != '\\' {
  13. break
  14. }
  15. }
  16. j++
  17. // odd number of backslahes means escape
  18. return (i-j)%2 != 0
  19. }