vorax 0.1.0pre
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -0
- data/.rspec +1 -0
- data/LICENSE.txt +22 -0
- data/README.md +45 -0
- data/Rakefile +30 -0
- data/lib/vorax/base_funnel.rb +30 -0
- data/lib/vorax/output/html_convertor.rb +120 -0
- data/lib/vorax/output/html_funnel.rb +79 -0
- data/lib/vorax/output/pagezip_convertor.rb +20 -0
- data/lib/vorax/output/tablezip_convertor.rb +22 -0
- data/lib/vorax/output/vertical_convertor.rb +53 -0
- data/lib/vorax/output/zip_convertor.rb +117 -0
- data/lib/vorax/parser/argument.rb~ +125 -0
- data/lib/vorax/parser/body_split.rb +168 -0
- data/lib/vorax/parser/conn_string.rb +104 -0
- data/lib/vorax/parser/grammars/alias.rb +912 -0
- data/lib/vorax/parser/grammars/alias.rl +146 -0
- data/lib/vorax/parser/grammars/column.rb +454 -0
- data/lib/vorax/parser/grammars/column.rl +64 -0
- data/lib/vorax/parser/grammars/common.rl +98 -0
- data/lib/vorax/parser/grammars/package_spec.rb +1186 -0
- data/lib/vorax/parser/grammars/package_spec.rl +78 -0
- data/lib/vorax/parser/grammars/plsql_def.rb +469 -0
- data/lib/vorax/parser/grammars/plsql_def.rl +59 -0
- data/lib/vorax/parser/grammars/statement.rb +925 -0
- data/lib/vorax/parser/grammars/statement.rl +83 -0
- data/lib/vorax/parser/parser.rb +320 -0
- data/lib/vorax/parser/plsql_structure.rb +158 -0
- data/lib/vorax/parser/plsql_walker.rb +143 -0
- data/lib/vorax/parser/statement_inspector.rb~ +52 -0
- data/lib/vorax/parser/stmt_inspector.rb +78 -0
- data/lib/vorax/parser/target_ref.rb +110 -0
- data/lib/vorax/sqlplus.rb +281 -0
- data/lib/vorax/version.rb +7 -0
- data/lib/vorax/vorax_io.rb +70 -0
- data/lib/vorax.rb +60 -0
- data/spec/column_spec.rb +40 -0
- data/spec/conn_string_spec.rb +53 -0
- data/spec/package_spec_spec.rb +48 -0
- data/spec/pagezip_spec.rb +153 -0
- data/spec/parser_spec.rb +299 -0
- data/spec/plsql_structure_spec.rb +44 -0
- data/spec/spec_helper.rb +13 -0
- data/spec/sql/create_objects.sql +69 -0
- data/spec/sql/dbms_crypto.spc +339 -0
- data/spec/sql/dbms_crypto.~spc +339 -0
- data/spec/sql/dbms_stats.spc +4097 -0
- data/spec/sql/drop_user.sql +10 -0
- data/spec/sql/muci.spc +24 -0
- data/spec/sql/setup_user.sql +22 -0
- data/spec/sql/test.pkg +67 -0
- data/spec/sqlplus_spec.rb +52 -0
- data/spec/stmt_inspector_spec.rb +84 -0
- data/spec/tablezip_spec.rb +111 -0
- data/spec/vertical_spec.rb +150 -0
- data/vorax.gemspec +21 -0
- metadata +139 -0
@@ -0,0 +1,98 @@
|
|
1
|
+
%%{
|
2
|
+
|
3
|
+
machine common;
|
4
|
+
|
5
|
+
# strings
|
6
|
+
squote = "'";
|
7
|
+
not_squote = [^''];
|
8
|
+
escaped_quote = /''/;
|
9
|
+
squoted_string = squote ( not_squote | escaped_quote )* squote;
|
10
|
+
dquoted_string = '"' ( any )* :>> '"';
|
11
|
+
|
12
|
+
# comments
|
13
|
+
ml_comment = '/*' ( any )* :>> '*/';
|
14
|
+
sl_comment = '--' ( any )* :>> '\n';
|
15
|
+
comment = ml_comment | sl_comment;
|
16
|
+
|
17
|
+
# define whitespace
|
18
|
+
ws = space | comment;
|
19
|
+
|
20
|
+
# identifier
|
21
|
+
simple_identifier = [A-Za-z_$#][0-9A-Za-z_$#]*;
|
22
|
+
identifier = simple_identifier | dquoted_string;
|
23
|
+
|
24
|
+
# define intereseting keywords
|
25
|
+
K_END = /end/i;
|
26
|
+
K_IF = /if/i;
|
27
|
+
K_LOOP = /loop/i;
|
28
|
+
K_PRAGMA = /pragma/i;
|
29
|
+
K_SELECT = /select/i;
|
30
|
+
K_FROM = /from/i;
|
31
|
+
K_WITH = /with/i;
|
32
|
+
K_AS = /as/i;
|
33
|
+
K_IS = /is/i;
|
34
|
+
K_JOIN = /join/i;
|
35
|
+
K_TRIGGER = /trigger/i;
|
36
|
+
K_FUNCTION = /function/i;
|
37
|
+
K_PROCEDURE = /procedure/i;
|
38
|
+
K_BEGIN = /begin/i;
|
39
|
+
K_DECLARE = /declare/i;
|
40
|
+
K_CREATE = /create/i;
|
41
|
+
K_OR = /or/i;
|
42
|
+
K_REPLACE = /replace/i;
|
43
|
+
K_PACKAGE = /package/i;
|
44
|
+
K_BODY = /body/i;
|
45
|
+
K_TYPE = /type/i;
|
46
|
+
K_AND = /and/i;
|
47
|
+
K_RESOLVE = /resolve/i;
|
48
|
+
K_COMPILE = /compile/i;
|
49
|
+
K_NOFORCE = /noforce/i;
|
50
|
+
K_JAVA = /java/i;
|
51
|
+
K_TRANSACTION = /transaction/i;
|
52
|
+
K_CONSTANT = /constant/i;
|
53
|
+
K_CURSOR = /cursor/i;
|
54
|
+
K_EXCEPTION = /exception/i;
|
55
|
+
|
56
|
+
# sqlplus keywords (without APPEND, CHANGE, DEL, GET, INPUT, LIST)
|
57
|
+
K_ACCEPT = /accept/i | /accep/i | /acce/i | /acc/i;
|
58
|
+
K_ARCHIVE = /archive/i;
|
59
|
+
K_ATTRIBUTE = /attribute/i;
|
60
|
+
K_BREAK = /break/i | /brea/i | /bre/i;
|
61
|
+
K_BTITLE = /btitle/i | /btitl/i | /btit/i | /bti/i;
|
62
|
+
K_CLEAR = /clear/i | /clea/i | /cle/i | /cl/i;
|
63
|
+
K_COLUMN = /column/i | /colum/i | /colu/i | /col/i;
|
64
|
+
K_COMPUTE = /compute/i | /comput/i | /compu/i | /comp/i;
|
65
|
+
K_CONNECT = /connect/i | /connec/i | /conne/i | /conn/i;
|
66
|
+
K_COPY = /copy/i;
|
67
|
+
K_DEFINE = /define/i | /defin/i | /defi/i | /def/i;
|
68
|
+
K_DESCRIBE = /describe/i | /describ/i | /descri/i | /descr/i | /desc/i;
|
69
|
+
K_DISCONNECT = /disconnect/i | /disconnec/i | /disconne/i | /disconn/i | /discon/i | /disco/i | /disc/i;
|
70
|
+
K_EXECUTE = /execute/i | /execut/i | /execu/i | /exec/i;
|
71
|
+
K_EXIT = /exit/i | /quit/i;
|
72
|
+
K_HELP = /help/i;
|
73
|
+
K_HOST = /host/i;
|
74
|
+
K_PASSWORD = /password/i | /passwor/i | /passwo/i | /passw/i;
|
75
|
+
K_PAUSE = /pause/i | /paus/i | /pau/i;
|
76
|
+
K_PRINT = /print/i;
|
77
|
+
K_PROMPT = /prompt/i | /promp/i | /prom/i | /pro/i;
|
78
|
+
K_RECOVER = /recover/i;
|
79
|
+
K_REMARK = /remark/i | /remar/i | /rema/i | /rem/i;
|
80
|
+
K_REPFOOTER = /repfooter/i | /repfoote/i | /repfoot/i | /repfoo/i | /repfo/i | /repf/i;
|
81
|
+
K_REPHEADER = /repheader/i | /repheade/i | /rephead/i | /rephea/i | /rephe/i | /reph/i;
|
82
|
+
K_RUN = /run/i | /ru/i;
|
83
|
+
K_SAVE = /save/i | /sav/i;
|
84
|
+
K_SET = /set/i;
|
85
|
+
K_SHOW = /show/i | /sho/i;
|
86
|
+
K_SHUTDOWN = /shutdown/i;
|
87
|
+
K_SPOOL = /spool/i | /spoo/i | /spo/i;
|
88
|
+
K_START = /start/i | /star/i | /sta/i;
|
89
|
+
K_STARTUP = /startup/i;
|
90
|
+
K_STORE = /store/i;
|
91
|
+
K_TIMING = /timing/i | /timin/i | /timi/i | /tim/i;
|
92
|
+
K_TITLE = /title/i | /titl/i | /tit/i;
|
93
|
+
K_UNDEFINE = /undefine/i | /undefin/i | /undefi/i | /undef/i;
|
94
|
+
K_VARIABLE = /variable/i | /variabl/i | /variab/i | /varia/i | /vari/i | /var/i;
|
95
|
+
K_WHENEVER = /whenever/i;
|
96
|
+
K_XQUERY = /xquery/i;
|
97
|
+
|
98
|
+
}%%
|