code: func (p *Lexer) ScalarType(n int) (interface{}, bool) {
  	b, ok, _ := p.Quoted(n)
  	if ok {
  		return b, true
  	}
  
  	s, ok := p.String()
  	if !ok {
  		return "", false
  	}
  
  	i, err := strconv.ParseInt(s, 10, 64)
  	if err == nil {
  		return i, true
  	}
  	f, err := strconv.ParseFloat(s, 64)
  	if err == nil {
  		return f, true
  	}
  	switch s {
  	case "true":
  		return true, true
  	case "false":
  		return false, true
  	default:
  		return s, true
  	}
  }
docs: // ScalarType ::= string | int64 | float64 | bool