[antlr-interest] Undeterminism - SQL column specification?
Juan Ignacio Gelos
juangelos at gmail.com
Sun Nov 20 12:41:34 PST 2005
Hi all,
I'm trying to generate a parser for SQL statements, and I need to
recognize columns and get each element in the column specification.
I need to match the following alternatives, but I'm getting
undeterminism errors:
canonColumn
// columnName
// object.columnName
// schema.object.columnName
// catalog.schema.object.columnName
// catalog..object.columnName
// server.catalog.schema.object.columnName
// server.catalog..object.columnName
:
((((server:someName DOT)? db:someName DOT)? (schema:someName)?
DOT)? object:someName DOT)? col:someName
// this works, but I need the labels: (someName DOT | DOT)* someName
;
D:\antlr>antlr-2.7.5.exe tsql-select2.g
ANTLR Parser Generator Version 2.7.5 (20050201) 1989-2005 jGuru.com
tsql-select2.g:326:5: warning:nondeterminism between alts 1 and 2 of block upon
tsql-select2.g:326:5:
k==1:"ties","cube","rollup","hash","concat","merge","loop","fast","force","maxdop","robust","keep","keepfixed","expand","views","xml","raw","auto","explicit","xmldata","elements","binary","base64","remote","fastfirstrow","nolock","paglock","readcommited","readpast","readuncommited","repeatableread","rowlock","serializable","tablock","tablockx","updlock","xlock","identitycol","rowguidcol","cast",NonQuotedIdentifier,QuotedIdentifier
tsql-select2.g:326:5:
k==2:"ties","cube","rollup","hash","concat","merge","loop","fast","force","maxdop","robust","keep","keepfixed","expand","views","xml","raw","auto","explicit","xmldata","elements","binary","base64","remote","fastfirstrow","nolock","paglock","readcommited","readpast","readuncommited","repeatableread","rowlock","serializable","tablock","tablockx","updlock","xlock","cast",NonQuotedIdentifier,QuotedIdentifier
tsql-select2.g:326:6: warning:nondeterminism between alts 1 and 2 of block upon
tsql-select2.g:326:6:
k==1:"ties","cube","rollup","hash","concat","merge","loop","fast","force","maxdop","robust","keep","keepfixed","expand","views","xml","raw","auto","explicit","xmldata","elements","binary","base64","remote","fastfirstrow","nolock","paglock","readcommited","readpast","readuncommited","repeatableread","rowlock","serializable","tablock","tablockx","updlock","xlock","identitycol","rowguidcol","cast",NonQuotedIdentifier,QuotedIdentifier
tsql-select2.g:326:6: k==2:DOT
tsql-select2.g:326:7: warning:nondeterminism between alts 1 and 2 of block upon
tsql-select2.g:326:7:
k==1:"ties","cube","rollup","hash","concat","merge","loop","fast","force","maxdop","robust","keep","keepfixed","expand","views","xml","raw","auto","explicit","xmldata","elements","binary","base64","remote","fastfirstrow","nolock","paglock","readcommited","readpast","readuncommited","repeatableread","rowlock","serializable","tablock","tablockx","updlock","xlock","identitycol","rowguidcol","cast",NonQuotedIdentifier,QuotedIdentifier
tsql-select2.g:326:7: k==2:DOT
tsql-select2.g:326:8: warning:nondeterminism between alts 1 and 2 of block upon
tsql-select2.g:326:8:
k==1:"ties","cube","rollup","hash","concat","merge","loop","fast","force","maxdop","robust","keep","keepfixed","expand","views","xml","raw","auto","explicit","xmldata","elements","binary","base64","remote","fastfirstrow","nolock","paglock","readcommited","readpast","readuncommited","repeatableread","rowlock","serializable","tablock","tablockx","updlock","xlock","identitycol","rowguidcol","cast",NonQuotedIdentifier,QuotedIdentifier
tsql-select2.g:326:8: k==2:DOT
Any ideas?
Thanks,
Juan Ignacio Gelos
More information about the antlr-interest
mailing list