Skip to content

Instantly share code, notes, and snippets.

@tiancaiamao
Last active August 4, 2016 04:54
Show Gist options
  • Save tiancaiamao/20f7dc6184b9a6724b5aec166c02d56b to your computer and use it in GitHub Desktop.
Save tiancaiamao/20f7dc6184b9a6724b5aec166c02d56b to your computer and use it in GitHub Desktop.
switch-case.go
switch ch0 {
case '|':
s.r.inc()
if s.r.peek() == '|' {
s.r.inc()
return oror
}
return '|'
case '&':
s.r.inc()
switch s.r.peek() {
case '&':
s.r.inc()
return andand
case '^':
s.r.inc()
return andnot
}
return '|'
case '<':
s.r.inc()
ch1 := s.r.inc()
switch ch1 {
case '=':
s.r.inc()
if s.r.peek() == '>' {
s.r.inc()
return '>'
}
return '='
}
return '<'
case '!':
s.r.inc()
if s.r.peek() == '=' {
s.r.inc()
return neq
}
return '!'
case '@':
return s.startWithAt()
case '/':
return s.startWithSlash()
case '-':
return s.startWithDash()
case '#':
s.r.incAsLongAs(func(ch byte) bool {
return ch != '\n'
})
return s.scan()
}
...以下省略几百行的switch-case
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment