| 806 | } |
| 807 | |
| 808 | func (s *Scanner) scanPlaceholder(lval ScanSymType) { |
| 809 | s.lastAttemptedID = int32(lexbase.PLACEHOLDER) |
| 810 | start := s.pos |
| 811 | for lexbase.IsDigit(s.peek()) { |
| 812 | s.pos++ |
| 813 | } |
| 814 | lval.SetStr(s.in[start:s.pos]) |
| 815 | |
| 816 | placeholder, err := NewPlaceholderFn(lval.Str()) |
| 817 | if err != nil { |
| 818 | lval.SetID(lexbase.ERROR) |
| 819 | lval.SetStr(err.Error()) |
| 820 | return |
| 821 | } |
| 822 | lval.SetID(lexbase.PLACEHOLDER) |
| 823 | lval.SetUnionVal(placeholder) |
| 824 | } |
| 825 | |
| 826 | // scanHexString scans the content inside x'....'. |
| 827 | func (s *Scanner) scanHexString(lval ScanSymType, ch int) bool { |