pgLab/pglablib/PgsqlLexer.g4

77 lines
1.5 KiB
Text
Raw Normal View History

lexer grammar PgsqlLexer;
@lexer::preinclude {
#include <QString>
}
SemiColon: ';';
Comma: ',';
Dot: '.';
OpenParen: '(';
CloseParen: ')';
2022-04-07 19:35:29 +02:00
fragment A : [aA];
fragment B : [bB];
fragment C : [cC];
fragment D : [dD];
fragment E : [eE];
fragment F : [fF];
fragment G : [gG];
fragment H : [hH];
fragment I : [iI];
fragment J : [jJ];
fragment K : [kK];
fragment L : [lL];
fragment M : [mM];
fragment N : [nN];
fragment O : [oO];
fragment P : [pP];
fragment Q : [qQ];
fragment R : [rR];
fragment S : [sS];
fragment T : [tT];
fragment U : [uU];
fragment V : [vV];
fragment W : [wW];
fragment X : [xX];
fragment Y : [yY];
fragment Z : [zZ];
As: A S;
By: B Y;
2022-04-07 19:35:29 +02:00
Cross: C R O S S;
From: F R O M;
Full: F U L L;
Group: G R O U P;
Having: H A V I N G;
2022-04-07 19:35:29 +02:00
Inner: I N N E R;
Join: J O I N;
Left : L E F T;
2022-04-07 19:35:29 +02:00
Natural : N A T U R A L;
On : O N;
Order : O R D E R;
2022-04-07 19:35:29 +02:00
Outer : O U T E R;
Right : R I G H T;
2022-04-07 19:35:29 +02:00
Select : S E L E C T;
Using : U S I N G;
Where : W H E R E;
Ident: [\p{Alpha}]~[\p{White_Space}]*
{
setText(QString::fromStdString(getText()).toLower().toStdString());
}
| '"' ~["]+ '"'
{
{
std::string s = getText();
s = s.substr(1, s.length() - 2);
setText(s);
}
};
IntegerLiteral: [1-9][0-9]*;
StringLiteral: '\'' ('\'\'' | ~['])+ '\'' { setText(getText().substr(1, getText().length()-2)); };
Whitespace: [\p{White_Space}] -> skip ; // skip spaces, tabs, newlines
UnexpectedSymbol: .;