vorax 0.1.0pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/.gitignore +7 -0
  2. data/.rspec +1 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +45 -0
  5. data/Rakefile +30 -0
  6. data/lib/vorax/base_funnel.rb +30 -0
  7. data/lib/vorax/output/html_convertor.rb +120 -0
  8. data/lib/vorax/output/html_funnel.rb +79 -0
  9. data/lib/vorax/output/pagezip_convertor.rb +20 -0
  10. data/lib/vorax/output/tablezip_convertor.rb +22 -0
  11. data/lib/vorax/output/vertical_convertor.rb +53 -0
  12. data/lib/vorax/output/zip_convertor.rb +117 -0
  13. data/lib/vorax/parser/argument.rb~ +125 -0
  14. data/lib/vorax/parser/body_split.rb +168 -0
  15. data/lib/vorax/parser/conn_string.rb +104 -0
  16. data/lib/vorax/parser/grammars/alias.rb +912 -0
  17. data/lib/vorax/parser/grammars/alias.rl +146 -0
  18. data/lib/vorax/parser/grammars/column.rb +454 -0
  19. data/lib/vorax/parser/grammars/column.rl +64 -0
  20. data/lib/vorax/parser/grammars/common.rl +98 -0
  21. data/lib/vorax/parser/grammars/package_spec.rb +1186 -0
  22. data/lib/vorax/parser/grammars/package_spec.rl +78 -0
  23. data/lib/vorax/parser/grammars/plsql_def.rb +469 -0
  24. data/lib/vorax/parser/grammars/plsql_def.rl +59 -0
  25. data/lib/vorax/parser/grammars/statement.rb +925 -0
  26. data/lib/vorax/parser/grammars/statement.rl +83 -0
  27. data/lib/vorax/parser/parser.rb +320 -0
  28. data/lib/vorax/parser/plsql_structure.rb +158 -0
  29. data/lib/vorax/parser/plsql_walker.rb +143 -0
  30. data/lib/vorax/parser/statement_inspector.rb~ +52 -0
  31. data/lib/vorax/parser/stmt_inspector.rb +78 -0
  32. data/lib/vorax/parser/target_ref.rb +110 -0
  33. data/lib/vorax/sqlplus.rb +281 -0
  34. data/lib/vorax/version.rb +7 -0
  35. data/lib/vorax/vorax_io.rb +70 -0
  36. data/lib/vorax.rb +60 -0
  37. data/spec/column_spec.rb +40 -0
  38. data/spec/conn_string_spec.rb +53 -0
  39. data/spec/package_spec_spec.rb +48 -0
  40. data/spec/pagezip_spec.rb +153 -0
  41. data/spec/parser_spec.rb +299 -0
  42. data/spec/plsql_structure_spec.rb +44 -0
  43. data/spec/spec_helper.rb +13 -0
  44. data/spec/sql/create_objects.sql +69 -0
  45. data/spec/sql/dbms_crypto.spc +339 -0
  46. data/spec/sql/dbms_crypto.~spc +339 -0
  47. data/spec/sql/dbms_stats.spc +4097 -0
  48. data/spec/sql/drop_user.sql +10 -0
  49. data/spec/sql/muci.spc +24 -0
  50. data/spec/sql/setup_user.sql +22 -0
  51. data/spec/sql/test.pkg +67 -0
  52. data/spec/sqlplus_spec.rb +52 -0
  53. data/spec/stmt_inspector_spec.rb +84 -0
  54. data/spec/tablezip_spec.rb +111 -0
  55. data/spec/vertical_spec.rb +150 -0
  56. data/vorax.gemspec +21 -0
  57. 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
+ }%%