MCPcopy
hub / github.com/sqldef/sqldef / ParseDDL

Function ParseDDL

parser/token.go:39–53  ·  view source on GitHub ↗

The main parser function for sqldef.

(sql string, mode ParserMode)

Source from the content-addressed store, hash-verified

37
38// The main parser function for sqldef.
39func ParseDDL(sql string, mode ParserMode) (Statement, error) {
40 tokenizer := NewTokenizer(sql, mode)
41 if yyParse(tokenizer) != 0 {
42 return nil, fmt.Errorf(
43 "found syntax error when parsing DDL \"%s\": %v", sql, tokenizer.LastError,
44 )
45 }
46 // yyParse returns 0 when error recovery rules are triggered, so check LastError
47 if tokenizer.LastError != nil {
48 return nil, fmt.Errorf(
49 "found syntax error when parsing DDL \"%s\": %v", sql, tokenizer.LastError,
50 )
51 }
52 return tokenizer.ParseTree, nil
53}
54
55// Tokenizer is the struct used to generate SQL
56// tokens for the parser.

Calls 3

NewTokenizerFunction · 0.85
yyParseFunction · 0.85
ErrorfMethod · 0.65