Created
June 11, 2015 13:42
-
-
Save jubianchi/4eed70c361cb161c3c1a to your computer and use it in GitHub Desktop.
cat test.sql | vendor/bin/hoa compiler:pp sql.pp 0 -s --visitor dump
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# namespace token name token value offset | |
-------------------------------------------------------------------------------- | |
0 default T_SELECT SELECT 0 | |
1 default T_IDENTIFIER foo 7 | |
2 default T_AS AS 11 | |
3 default T_IDENTIFIER bar 14 | |
4 default T_FROM from 18 | |
5 default T_OPAREN ( 23 | |
6 default T_SELECT select 24 | |
7 default T_NUMBER 1 31 | |
8 default T_AS as 33 | |
9 default T_IDENTIFIER foo 36 | |
10 default T_CPAREN ) 39 | |
11 default T_SEMICOLON ; 40 | |
12 default T_SELECT SELECT 42 | |
13 default T_SQUOTE ' 49 | |
14 string T_STRING hello 50 | |
15 string T_SQUOTE ' 55 | |
16 default T_SEMICOLON ; 56 | |
17 default T_SELECT SELECT 58 | |
18 default T_DQUOTE " 65 | |
19 string T_STRING world 66 | |
20 string T_DQUOTE " 71 | |
21 default T_SEMICOLON ; 72 | |
22 default EOF 75 | |
> #queries | |
> > #query | |
> > > #select | |
> > > > #fields | |
> > > > > #field | |
> > > > > > token(T_IDENTIFIER, foo) | |
> > > > > > #alias | |
> > > > > > > token(T_IDENTIFIER, bar) | |
> > > > #from | |
> > > > > #select | |
> > > > > > #fields | |
> > > > > > > #field | |
> > > > > > > > #value | |
> > > > > > > > > token(T_NUMBER, 1) | |
> > > > > > > > #alias | |
> > > > > > > > > token(T_IDENTIFIER, foo) | |
> > #queries | |
> > > #query | |
> > > > #select | |
> > > > > #fields | |
> > > > > > #field | |
> > > > > > > #value | |
> > > > > > > > #string | |
> > > > > > > > > token(string:T_STRING, hello) | |
> > > #queries | |
> > > > #query | |
> > > > > #select | |
> > > > > > #fields | |
> > > > > > > #field | |
> > > > > > > > #value | |
> > > > > > > > > #string | |
> > > > > > > > > > token(string:T_STRING, world) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# namespace token name token value offset | |
-------------------------------------------------------------------------------- | |
0 default T_SELECT SELECT 0 | |
1 default T_IDENTIFIER foo 7 | |
2 default T_AS AS 11 | |
3 default T_IDENTIFIER bar 14 | |
4 default T_FROM from 18 | |
5 default T_OPAREN ( 23 | |
6 default T_SELECT select 24 | |
7 default T_NUMBER 1 31 | |
8 default T_AS as 33 | |
9 default T_IDENTIFIER foo 36 | |
10 default T_CPAREN ) 39 | |
11 default T_SEMICOLON ; 40 | |
12 default T_SELECT SELECT 42 | |
13 default T_SQUOTE ' 49 | |
14 string T_STRING hello 50 | |
15 string T_SQUOTE ' 55 | |
16 default T_SEMICOLON ; 56 | |
17 default T_SELECT SELECT 58 | |
18 default T_DQUOTE " 65 | |
19 string T_STRING world 66 | |
20 string T_DQUOTE " 71 | |
21 default T_SEMICOLON ; 72 | |
22 default EOF 75 | |
> #queries | |
> > #query | |
> > > #select | |
> > > > #fields | |
> > > > > #field | |
> > > > > > token(T_IDENTIFIER, foo) | |
> > > > > > #alias | |
> > > > > > > token(T_IDENTIFIER, bar) | |
> > > > #from | |
> > > > > #select | |
> > > > > > #fields | |
> > > > > > > #field | |
> > > > > > > > #value | |
> > > > > > > > > token(T_NUMBER, 1) | |
> > > > > > > > #alias | |
> > > > > > > > > token(T_IDENTIFIER, foo) | |
> > #query | |
> > > #select | |
> > > > #fields | |
> > > > > #field | |
> > > > > > #value | |
> > > > > > > #string | |
> > > > > > > > token(string:T_STRING, hello) | |
> > #query | |
> > > #select | |
> > > > #fields | |
> > > > > #field | |
> > > > > > #value | |
> > > > > > > #string | |
> > > > > > > > token(string:T_STRING, world) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%skip space [\s\t\r\n] | |
%token T_SELECT (?i)select | |
%token T_UPDATE (?i)update | |
%token T_INSERT (?i)insert | |
%token T_DELETE (?i)delete | |
%token T_FROM (?i)from | |
%token T_AS (?i)as | |
%token T_INTO (?i)into | |
%token T_VALUES (?i)values | |
%token T_COMMA , | |
%token T_SEMICOLON ; | |
%token T_SQUOTE ' -> string | |
%token T_DQUOTE " -> string | |
%token T_OPAREN \( | |
%token T_CPAREN \) | |
%token T_NUMBER \-?(0|[1-9]\d*)(\.\d+)?([eE][\+\-]?\d+)? | |
%token T_IDENTIFIER [a-zA-Z0-9]+ | |
%token string:T_STRING [^"']+ | |
%token string:T_SQUOTE ' -> default | |
%token string:T_DQUOTE " -> default | |
#queries: | |
query() (::T_SEMICOLON:: queries()?)? | |
#query: | |
select() | insert() | |
#select: | |
::T_SELECT:: fields() from()? | |
#insert: | |
::T_INSERT:: ::T_INTO:: <T_IDENTIFIER> ::T_VALUES:: values() | |
#from: | |
::T_FROM:: (<T_IDENTIFIER> | ::T_OPAREN:: select() ::T_CPAREN::) | |
#fields: | |
field() (::T_COMMA:: field())* | |
#field: | |
(<T_IDENTIFIER> | value()) alias()? | |
#alias: | |
::T_AS:: <T_IDENTIFIER> | |
#values: | |
::T_OPAREN:: value() (::T_COMMA:: value())* ::T_CPAREN:: | |
#value: | |
string() | <T_NUMBER> | |
#string: | |
sstring() | dstring() | |
sstring: | |
::T_SQUOTE:: <T_STRING> ::T_SQUOTE:: | |
dstring: | |
::T_DQUOTE:: <T_STRING> ::T_DQUOTE:: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT foo AS bar from (select 1 as foo); | |
SELECT 'hello'; | |
SELECT "world"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Question
hoa/compiler
:cat test.sql | vendor/bin/hoa compiler:pp sql.pp 0 -s --visitor dump
Une idée ?