MCPcopy Create free account
hub / github.com/cockroachdb/cockroachdb-parser / plpgsqllex1

Function plpgsqllex1

pkg/sql/plpgsql/parser/plpgsql.go:1049–1082  ·  view source on GitHub ↗
(lex plpgsqlLexer, lval *plpgsqlSymType)

Source from the content-addressed store, hash-verified

1047}
1048
1049func plpgsqllex1(lex plpgsqlLexer, lval *plpgsqlSymType) (char, token int) {
1050 token = 0
1051 char = lex.Lex(lval)
1052 if char <= 0 {
1053 token = int(plpgsqlTok1[0])
1054 goto out
1055 }
1056 if char < len(plpgsqlTok1) {
1057 token = int(plpgsqlTok1[char])
1058 goto out
1059 }
1060 if char >= plpgsqlPrivate {
1061 if char < plpgsqlPrivate+len(plpgsqlTok2) {
1062 token = int(plpgsqlTok2[char-plpgsqlPrivate])
1063 goto out
1064 }
1065 }
1066 for i := 0; i < len(plpgsqlTok3); i += 2 {
1067 token = int(plpgsqlTok3[i+0])
1068 if token == char {
1069 token = int(plpgsqlTok3[i+1])
1070 goto out
1071 }
1072 }
1073
1074out:
1075 if token == 0 {
1076 token = int(plpgsqlTok2[1]) /* unknown char */
1077 }
1078 if plpgsqlDebug >= 3 {
1079 __yyfmt__.Printf("lex %s(%d)\n", plpgsqlTokname(token), uint(char))
1080 }
1081 return char, token
1082}
1083
1084func plpgsqlParse(plpgsqllex plpgsqlLexer) int {
1085 return plpgsqlNewParser().Parse(plpgsqllex)

Callers 1

ParseMethod · 0.85

Calls 3

plpgsqlToknameFunction · 0.85
PrintfMethod · 0.80
LexMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…