68 lines
1.1 KiB
Plaintext
68 lines
1.1 KiB
Plaintext
unit JavaLexer;
|
|
|
|
uses
|
|
{
|
|
dpgTokenStreamSelector;
|
|
}
|
|
|
|
lexer TJavaLexer;
|
|
options
|
|
{
|
|
k = 2;
|
|
importVocab = JavaDoc;
|
|
exportVocab = Java;
|
|
}
|
|
|
|
tokens
|
|
{
|
|
"int";
|
|
}
|
|
|
|
memberdecl
|
|
{
|
|
public
|
|
Selector : IdpgTokenStreamSelector;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Simple tokens
|
|
// ----------------------------------------------------------------------------
|
|
SEMI : ';';
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// JavaDocOpen
|
|
// ----------------------------------------------------------------------------
|
|
JAVADOC_OPEN
|
|
: "/**" { Selector.Push('docLexer'); }
|
|
;
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Identifier
|
|
// ----------------------------------------------------------------------------
|
|
ID
|
|
options
|
|
{
|
|
testLiterals = true;
|
|
}
|
|
: ('a'..'z')+
|
|
;
|
|
|
|
WS
|
|
:
|
|
(
|
|
' '
|
|
| '\t'
|
|
|
|
|
(
|
|
'\r' '\n'
|
|
| '\r'
|
|
| '\n'
|
|
)
|
|
{
|
|
newLine;
|
|
}
|
|
)
|
|
{
|
|
_ttype := TT_SKIP;
|
|
}
|
|
; |