Select Git revision
JavaCCChunks.jrag
-
Anders Nilsson authored
Can now run JastAdd on generated grammar: java -jar ../tools/jastadd2.jar --rewrite --jjtree --package=AST --grammar Siaras.ast
Anders Nilsson authoredCan now run JastAdd on generated grammar: java -jar ../tools/jastadd2.jar --rewrite --jjtree --package=AST --grammar Siaras.ast
JavaCCChunks.jrag 7.57 KiB
/* -*-Java-*- */
aspect JavaCCChunks {
void Start.genJavaCCHeader(PrintStream pStream) {
pStream.println("options {");
pStream.println(" MULTI = true;");
pStream.println(" VISITOR = true;");
pStream.println(" NODE_DEFAULT_VOID = true;");
pStream.println(" NODE_SCOPE_HOOK = false;");
pStream.println(" NODE_PREFIX = \"\";");
pStream.println(" JAVA_UNICODE_ESCAPE = true;");
pStream.println(" STATIC = false;");
pStream.println("} ");
pStream.println();
pStream.println("PARSER_BEGIN(SiarasParser)");
pStream.println(" package siaras.AST;");
pStream.println(" public class SiarasParser {");
pStream.println("}");
pStream.println("PARSER_END(SiarasParser)");
pStream.println();
pStream.println("//----------------------------------------------//");
pStream.println("// LEXICAL TOKENS //");
pStream.println("//----------------------------------------------//");
pStream.println("<DEFAULT, BOUNDS> SKIP : /* WHITE SPACE */");
pStream.println("{");
pStream.println(" \" \"");
pStream.println(" |");
pStream.println(" \"\\t\"");
pStream.println(" |");
pStream.println(" \"\\n\"");
pStream.println(" |");
pStream.println(" \"\\r\"");
pStream.println(" |");
pStream.println(" \"\\f\"");
pStream.println("}// WHITE SPACE");
pStream.println();
pStream.println("SPECIAL_TOKEN : /* COMMENTS */ ");
pStream.println("{");
pStream.println(" < \"<!--\" ( ~[\"-\"] | ( \"-\" ~[\"-\"] ) )* \"-->\">");
pStream.println(" | < \"<rdfs:comment\" ( ~[\"<\"] | ( \"<\" ~[\"/\"] ) )* \"</rdfs:comment>\" >");
pStream.println("}// COMMENTS");
pStream.println();
}
void Start.genJavaCCLiterals(PrintStream pStream) {
pStream.println("<DEFAULT, BOUNDS> TOKEN : /* LITERALS */");
pStream.println("{");
pStream.println(" < INTEGER_LITERAL:");
pStream.println(" <DECIMAL_LITERAL> ([\"l\",\"L\"])?");
pStream.println(" |");
pStream.println(" <HEX_LITERAL> ([\"l\",\"L\"])?");
pStream.println(" |");
pStream.println(" <OCTAL_LITERAL> ([\"l\",\"L\"])?");
pStream.println(" >");
pStream.println(" |");
pStream.println(" < #DECIMAL_LITERAL: [\"1\"-\"9\"] ([\"0\"-\"9\"])* >");
pStream.println(" |");
pStream.println(" < #HEX_LITERAL: \"0\" [\"x\",\"X\"] ([\"0\"-\"9\",\"a\"-\"f\",\"A\"-\"F\"])+ >");
pStream.println(" |");
pStream.println(" < #OCTAL_LITERAL: \"0\" ([\"0\"-\"7\"])* >");
pStream.println(" |");
pStream.println(" < FLOAT_LITERAL:");
pStream.println(" ([\"0\"-\"9\"])+ \".\" ([\"0\"-\"9\"])* (<EXPONENT>)? ([\"f\",\"F\",\"d\",\"D\"])?");
pStream.println(" |");
pStream.println(" \".\" ([\"0\"-\"9\"])+ (<EXPONENT>)? ([\"f\",\"F\",\"d\",\"D\"])?");
pStream.println(" |");
pStream.println(" ([\"0\"-\"9\"])+ <EXPONENT> ([\"f\",\"F\",\"d\",\"D\"])?");
pStream.println(" |");
pStream.println(" ([\"0\"-\"9\"])+ (<EXPONENT>)? [\"f\",\"F\",\"d\",\"D\"]");
pStream.println(" >");
pStream.println(" |");
pStream.println(" < #EXPONENT: [\"e\",\"E\"] ([\"+\",\"-\"])? ([\"0\"-\"9\"])+ >");
pStream.println(" |");
pStream.println(" < CHARACTER_LITERAL:");
pStream.println(" \"\'\"");
pStream.println(" ( (~[\"\'\",\"\\\",\"\n\",\"\r\"])");
pStream.println(" |");
pStream.println(" (\"\\\"");
pStream.println(" ( [\"n\",\"t\",\"b\",\"r\",\"f\",\"\\\",\"'\",\"\\\"\"]");
pStream.println(" |");
pStream.println(" [\"0\"-\"7\"] ( [\"0\"-\"7\"] )?");
pStream.println(" |");
pStream.println(" [\"0\"-\"3\"] [\"0\"-\"7\"] [\"0\"-\"7\"]");
pStream.println(" )");
pStream.println(" )");
pStream.println(" )");
pStream.println(" \"'\"");
pStream.println(" >");
pStream.println(" |");
pStream.println(" < STRING_LITERAL:");
pStream.println(" \"\\\"\"");
pStream.println(" ( (~[\"\\\"\",\"\\\",\"\n\",\"\r\"])");
pStream.println(" |");
pStream.println(" (\"\\\"");
pStream.println(" ( [\"n\",\"t\",\"b\",\"r\",\"f\",\"\\\",\"'\",\"\\\"\"]");
pStream.println(" |");
pStream.println(" [\"0\"-\"7\"] ( [\"0\"-\"7\"] )?");
pStream.println(" |");
pStream.println(" [\"0\"-\"3\"] [\"0\"-\"7\"] [\"0\"-\"7\"]");
pStream.println(" )");
pStream.println(" )");
pStream.println(" )*");
pStream.println(" \"\\\"\"");
pStream.println(" >");
pStream.println("}// LITERALS");
}
void Start.genJavaCCIdentifiers(PrintStream pStream) {
pStream.println("<DEFAULT, BOUNDS> TOKEN : /* IDENTIFIERS */");
pStream.println("{");
pStream.println(" < IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>|\"-\")* >");
pStream.println(" |");
pStream.println(" < #LETTER:");
pStream.println(" [");
pStream.println(" \"\\u0024\",");
pStream.println(" \"\\u0041\"-\"\\u005a\",");
pStream.println(" \"\\u005f\",");
pStream.println(" \"\\u0061\"-\"\\u007a\",");
pStream.println(" \"\\u00c0\"-\"\\u00d6\",");
pStream.println(" \"\\u00d8\"-\"\\u00f6\",");
pStream.println(" \"\\u00f8\"-\"\\u00ff\",");
pStream.println(" \"\\u0100\"-\"\\u1fff\",");
pStream.println(" \"\\u3040\"-\"\\u318f\",");
pStream.println(" \"\\u3300\"-\"\\u337f\",");
pStream.println(" \"\\u3400\"-\"\\u3d2d\",");
pStream.println(" \"\\u4e00\"-\"\\u9fff\",");
pStream.println(" \"\\uf900\"-\"\\ufaff\"");
pStream.println(" ]");
pStream.println(" >");
pStream.println(" |");
pStream.println(" < #DIGIT:");
pStream.println(" [");
pStream.println(" \"\\u0030\"-\"\\u0039\",");
pStream.println(" \"\\u0660\"-\"\\u0669\",");
pStream.println(" \"\\u06f0\"-\"\\u06f9\",");
pStream.println(" \"\\u0966\"-\"\\u096f\",");
pStream.println(" \"\\u09e6\"-\"\\u09ef\",");
pStream.println(" \"\\u0a66\"-\"\\u0a6f\",");
pStream.println(" \"\\u0ae6\"-\"\\u0aef\",");
pStream.println(" \"\\u0b66\"-\"\\u0b6f\",");
pStream.println(" \"\\u0be7\"-\"\\u0bef\",");
pStream.println(" \"\\u0c66\"-\"\\u0c6f\",");
pStream.println(" \"\\u0ce6\"-\"\\u0cef\",");
pStream.println(" \"\\u0d66\"-\"\\u0d6f\",");
pStream.println(" \"\\u0e50\"-\"\\u0e59\",");
pStream.println(" \"\\u0ed0\"-\"\\u0ed9\",");
pStream.println(" \"\\u1040\"-\"\\u1049\"");
pStream.println(" ]");
pStream.println(" >");
pStream.println("}// IDENTIFIERS");
}
void Start.genJavaCCSeparators(PrintStream pStream) {
pStream.println("<DEFAULT,BOUNDS> TOKEN : /* SEPARATORS */");
pStream.println("{");
pStream.println(" < LBRACE : \"{\" >");
pStream.println(" | < RBRACE : \"}\" >");
pStream.println(" | < LBRACKET : \"[\" >");
pStream.println(" | < RBRACKET : \"]\" >");
pStream.println(" | < SEMICOLON : \";\" >");
pStream.println("}// SEPARATORS");
}
void Start.genJavaCCOperators(PrintStream pStream) {
pStream.println("<DEFAULT,BOUNDS> TOKEN : /* OPERATORS */");
pStream.println("{");
pStream.println(" < ASSIGN : \"=\" >");
pStream.println("}// OPERATORS");
}
}