diff options
author | ptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b> | 2016-08-09 21:50:19 +0000 |
---|---|---|
committer | ptmcg <ptmcg@9bf210a0-9d2d-494c-87cf-cfb32e7dff7b> | 2016-08-09 21:50:19 +0000 |
commit | 0b19bb71ba5a4afa84e673a8239935426fa0db23 (patch) | |
tree | e9abae9c616fdfdfebd9a8a0931d8f21824f30d2 /trunk/src/examples/sql2dot.py | |
parent | b2c3ade75384efe76b8774b607e17fe98fab92ef (diff) | |
download | pyparsing_2.1.6.tar.gz |
Remove incorrect tag directorypyparsing_2.1.6
git-svn-id: svn://svn.code.sf.net/p/pyparsing/code/tags/pyparsing_2.1.6@405 9bf210a0-9d2d-494c-87cf-cfb32e7dff7b
Diffstat (limited to 'trunk/src/examples/sql2dot.py')
-rw-r--r-- | trunk/src/examples/sql2dot.py | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/trunk/src/examples/sql2dot.py b/trunk/src/examples/sql2dot.py deleted file mode 100644 index 1156207..0000000 --- a/trunk/src/examples/sql2dot.py +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/python
-
-# sql2dot.py
-#
-# Creates table graphics by parsing SQL table DML commands and
-# generating DOT language output.
-#
-# Adapted from a post at http://energyblog.blogspot.com/2006/04/blog-post_20.html.
-#
-sampleSQL = """
-create table student
-(
-student_id integer primary key,
-firstname varchar(20),
-lastname varchar(40),
-address1 varchar(80),
-address2 varchar(80),
-city varchar(30),
-state varchar(2),
-zipcode varchar(10),
-dob date
-);
-
-create table classes
-(
-class_id integer primary key,
-id varchar(8),
-maxsize integer,
-instructor varchar(40)
-);
-
-create table student_registrations
-(
-reg_id integer primary key,
-student_id integer,
-class_id integer
-);
-
-alter table only student_registrations
- add constraint students_link
- foreign key
- (student_id) references students(student_id);
-
-alter table only student_registrations
- add constraint classes_link
- foreign key
- (class_id) references classes(class_id);
-""".upper()
-
-from pyparsing import Literal, CaselessLiteral, Word, delimitedList \
- ,Optional, Combine, Group, alphas, nums, alphanums, Forward \
- , oneOf, sglQuotedString, OneOrMore, ZeroOrMore, CharsNotIn \
- , replaceWith
-
-skobki = "(" + ZeroOrMore(CharsNotIn(")")) + ")"
-field_def = OneOrMore(Word(alphas,alphanums+"_\"':-") | skobki)
-
-def field_act(s,loc,tok):
- return ("<"+tok[0]+"> " + " ".join(tok)).replace("\"","\\\"")
-
-field_def.setParseAction(field_act)
-
-field_list_def = delimitedList( field_def )
-def field_list_act(toks):
- return " | ".join(toks)
-
-field_list_def.setParseAction(field_list_act)
-
-create_table_def = Literal("CREATE") + "TABLE" + Word(alphas,alphanums+"_").setResultsName("tablename") + \
- "("+field_list_def.setResultsName("columns")+")"+ ";"
-
-def create_table_act(toks):
- return """"%(tablename)s" [\n\t label="<%(tablename)s> %(tablename)s | %(columns)s"\n\t shape="record"\n];""" % toks
-create_table_def.setParseAction(create_table_act)
-
-add_fkey_def=Literal("ALTER")+"TABLE"+"ONLY" + Word(alphanums+"_").setResultsName("fromtable") + "ADD" \
- + "CONSTRAINT" + Word(alphanums+"_") + "FOREIGN"+"KEY"+"("+Word(alphanums+"_").setResultsName("fromcolumn")+")" \
- +"REFERENCES"+Word(alphanums+"_").setResultsName("totable")+"("+Word(alphanums+"_").setResultsName("tocolumn")+")"+";"
-
-def add_fkey_act(toks):
- return """ "%(fromtable)s":%(fromcolumn)s -> "%(totable)s":%(tocolumn)s """ % toks
-add_fkey_def.setParseAction(add_fkey_act)
-
-other_statement_def = ( OneOrMore(CharsNotIn(";") ) + ";")
-other_statement_def.setParseAction( replaceWith("") )
-comment_def = "--" + ZeroOrMore(CharsNotIn("\n"))
-comment_def.setParseAction( replaceWith("") )
-
-statement_def = comment_def | create_table_def | add_fkey_def | other_statement_def
-defs = OneOrMore(statement_def)
-
-print("""digraph g { graph [ rankdir = "LR" ]; """)
-for i in defs.parseString(sampleSQL):
- if i!="":
- print(i)
-print("}")
\ No newline at end of file |