Issue #734 \xAB escapes, \uABCD escapes

Lexers moved to separate directory, JFlex 1.6.0 library for ant included
Issue #687 allowing comments on separate line
This commit is contained in:
Jindra Petřík
2014-11-30 07:43:57 +01:00
parent 8e493adf11
commit 32c6ef7932
18 changed files with 10710 additions and 11740 deletions

View File

@@ -656,5 +656,5 @@
<target name="upload-last" depends="all,-upload">
</target>
</target>
</project>

View File

@@ -37,6 +37,7 @@
<property name="DISTLIBRARIESDIRNAME" value="lib"/>
<property name="JAVADOCDIR" value="${basedir}/javadoc"/>
<property name="REVFILE" value="${basedir}/revision.txt"/>
<property name="LEXERSDIR" value="${basedir}/lexers"/>
<property name="RUNPARAMS" value=""/>

View File

@@ -41,8 +41,7 @@
</copy>
</target>
<target name="compile">
<!--<delete dir="${COMPILEDIR}"/>-->
<target name="compile" depends="lexers">
<mkdir dir="${COMPILEDIR}"/>
<mkdir dir="${LIBRARIESDIR}"/>
<javac srcdir="${SOURCEDIR}" destdir="${COMPILEDIR}" includes="**/*.java" target="${TARGETJAVA}" source="${TARGETJAVA}" debug="true"
@@ -226,4 +225,28 @@
<target name="run">
<ant antfile="../../build.xml" target="run" inheritall="false"/>
</target>
<target name="-lexer" if="lexer">
<taskdef classname="jflex.anttask.JFlexTask" classpath="${basedir}/jflex-1.6.0.jar" name="jflex" />
<jflex file="${lexer}" destdir="${SOURCEDIR}" nobak="on"></jflex>
</target>
<target name="lexers">
<pathconvert pathsep="|" property="lexers">
<fileset dir="${LEXERSDIR}" includes="**/*.flex"/>
<chainedmapper>
<flattenmapper/>
<globmapper from="*" to="/*"/>
</chainedmapper>
</pathconvert>
<script language="javascript"><![CDATA[
var classpath = project.getProperty("lexers");
var parts = classpath.split("|");
for each (var part in parts) {
project.setProperty("lexer",project.getProperty("LEXERSDIR")+part);
self.project.executeTarget("-lexer");
}
]]></script>
</target>
</project>

Binary file not shown.

View File

@@ -82,7 +82,6 @@ FLit3 = [0-9]+
Exponent = [eE] [+-]? [0-9]+
HexDigit = [0-9a-fA-F]
OctDigit = [0-7]
/* string and character literals */
StringCharacter = [^\r\n\"\\]
@@ -161,9 +160,9 @@ StringCharacter = [^\r\n\"\\]
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
\\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* error cases */

View File

@@ -164,6 +164,7 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":"
{InstructionName} { yybegin(PARAMETERS);
return new ParsedSymbol(ParsedSymbol.TYPE_INSTRUCTION_NAME, yytext());
}
{Comment} {return new ParsedSymbol(ParsedSymbol.TYPE_COMMENT, yytext().substring(1));}
}
<PARAMETERS> {
@@ -284,9 +285,9 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":"
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
\\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* error cases */

View File

@@ -586,7 +586,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\§" { string.append('\u00A7'); }
"\\r" { string.append('\r'); }
"\\\\" { string.append('\\'); }
\\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
@@ -613,9 +615,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
\\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
@@ -642,9 +644,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
\\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */

View File

@@ -101,7 +101,6 @@ FLit3 = [0-9]+
Exponent = [eE] [+-]? [0-9]+
HexDigit = [0-9a-fA-F]
OctDigit = [0-7]
/* string and character literals */
StringCharacter = [^\r\n\"\\]
@@ -175,9 +174,9 @@ Constant= constant{PositiveNumberLiteral}
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
\\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* error cases */

View File

@@ -386,7 +386,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\\u00A7" { string.append('\u00A7'); }
"\\r" { string.append('\r'); }
"\\\\" { string.append('\\'); }
\\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
@@ -412,8 +414,10 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\r" { string.append('\r'); }
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
\\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
"\\\\" { string.append('\\'); }
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */
@@ -441,7 +445,9 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
"\\\"" { string.append('\"'); }
"\\'" { string.append('\''); }
"\\\\" { string.append('\\'); }
\\[0-3]?{OctDigit}?{OctDigit} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
\\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
/* escape sequences */