Slide 46
Slide 46 text
࣮ࡍʹࣈ۟ղੳΛߦ͏ؔ
εςʔτϚγϯ switch จΛ
࣮ͬͯͰ͖Δ
• ࠷ॳͷ rune Λ peek ͢Δ
• ࣍ͷΞΫγϣϯΛܾΊΔ
• ͦͷΞΫγϣϯΛ࣮ߦ͢Δ
func (l *Lexer) scan() (Token, string, error) {
ch := l.peek()
switch {
case unicode.IsSpace(ch):
l.read()
return l.scan()
case ch == eof:
return TEOF, "", nil
case isQuote(ch):
lit, err := l.scanStrLit()
if err != nil { return TILLEGAL, "", err }
return TSTRLIT, lit, nil