Added support for character prefixes + various other improvements.
This commit is contained in:
@@ -96,7 +96,7 @@ public final class CppParser {
|
|||||||
if (t.kind != ID && t.kind != SCOPE)
|
if (t.kind != ID && t.kind != SCOPE)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
StringBuffer s = new StringBuffer();
|
StringBuilder s = new StringBuilder();
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
if (t.kind != SCOPE)
|
if (t.kind != SCOPE)
|
||||||
@@ -309,10 +309,11 @@ TOKEN [IGNORE_CASE] :
|
|||||||
|
|
||||||
TOKEN :
|
TOKEN :
|
||||||
{
|
{
|
||||||
|
< #CHRPREF : <STRPREF>>
|
||||||
|
| < CHARACTER : <CHRPREF>
|
||||||
|
"'" ( ( ~["'","\\","\r","\n"] ) | ( "\\" ( ~["\n","\r"] ) ) )* "'" >
|
||||||
|
|
||||||
< CHARACTER : ("L")? "'" ( ( ~["'","\\","\r","\n"] ) | ( "\\" ( ~["\n","\r"] ) ) )* "'" >
|
| < #STRPREF : ("L" | "u" | "U" | "u8")? >
|
||||||
|
|
||||||
| < #STRPREF : (["L", "u", "U"] | "u8")? >
|
|
||||||
| < STRING : <STRPREF>
|
| < STRING : <STRPREF>
|
||||||
"\"" ( ( ~["\"","\\","\r","\n"] ) | ( "\\" ( ~["\n","\r"] | "\n" | "\r\n" ) ) )* "\"" >
|
"\"" ( ( ~["\"","\\","\r","\n"] ) | ( "\\" ( ~["\n","\r"] | "\n" | "\r\n" ) ) )* "\"" >
|
||||||
|
|
||||||
@@ -324,7 +325,7 @@ TOKEN :
|
|||||||
{
|
{
|
||||||
< RSTRING : <STRPREF> "R\"" >
|
< RSTRING : <STRPREF> "R\"" >
|
||||||
{
|
{
|
||||||
StringBuffer sb = new StringBuffer(16);
|
StringBuilder sb = new StringBuilder(16);
|
||||||
|
|
||||||
// delim ------+
|
// delim ------+
|
||||||
// vvv
|
// vvv
|
||||||
@@ -338,14 +339,12 @@ TOKEN :
|
|||||||
}
|
}
|
||||||
final String delim = sb.toString();
|
final String delim = sb.toString();
|
||||||
|
|
||||||
sb = new StringBuffer(256);
|
|
||||||
rstringbody:
|
rstringbody:
|
||||||
// Matching R"...(...)..."
|
// Matching R"...(...)..."
|
||||||
// ^
|
// ^
|
||||||
for (;;) {
|
for (;;) {
|
||||||
try { curChar = input_stream.readChar(); }
|
try { curChar = input_stream.readChar(); }
|
||||||
catch(java.io.IOException e) { return; }
|
catch(java.io.IOException e) { return; }
|
||||||
sb.append(curChar);
|
|
||||||
if (curChar == ')') {
|
if (curChar == ')') {
|
||||||
// delim --------------+
|
// delim --------------+
|
||||||
// vvv
|
// vvv
|
||||||
@@ -358,7 +357,6 @@ rstringbody:
|
|||||||
input_stream.backup(1);
|
input_stream.backup(1);
|
||||||
continue rstringbody;
|
continue rstringbody;
|
||||||
}
|
}
|
||||||
sb.append(curChar);
|
|
||||||
}
|
}
|
||||||
// Matching R"...(...)..."
|
// Matching R"...(...)..."
|
||||||
// ^
|
// ^
|
||||||
@@ -368,12 +366,13 @@ rstringbody:
|
|||||||
input_stream.backup(1);
|
input_stream.backup(1);
|
||||||
continue rstringbody;
|
continue rstringbody;
|
||||||
}
|
}
|
||||||
sb.append(curChar);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Setting final token image
|
// Setting final token image
|
||||||
matchedToken.image += delim + "(" + sb.toString();
|
matchedToken.image = input_stream.GetImage();
|
||||||
|
matchedToken.endLine = input_stream.getEndLine();
|
||||||
|
matchedToken.endColumn = input_stream.getEndColumn();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user