Skip to content
Snippets Groups Projects
Select Git revision
  • cf67d3eaf970eb72e13f197dbe5068a8c5bc1662
  • master default
  • multipleinheritance
3 results

JavaCCChunks.jrag

Blame
  • 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");
    	}
    }