예제 #1
0
  public void test() throws IOException {
    // g++ -o test test.cpp
    // chmod +x test
    // ./test

    // TODO initialize fields

    // include files:
    // /usr/include/c++/4.2.1/tr1/stdio.h
    // /usr/include/stdio.h
    // inttypes.h

    // not supported yet:
    // exceptions
    // HexadecimalFloatingPointLiteral
    // int x()[] { return null; }
    // import static
    // import *
    // initializer blocks
    // access to static fields with instance variable
    // final variables (within blocks, parameter list)
    // Identifier : (labels)
    // ClassOrInterfaceDeclaration within blocks (or any other nested classes)
    // assert

    assertEquals("\\\\" + "u0000", JavaParser.replaceUnicode("\\\\" + "u0000"));
    assertEquals("\u0000", JavaParser.replaceUnicode("\\" + "u0000"));
    assertEquals("\u0000", JavaParser.replaceUnicode("\\" + "uu0000"));
    assertEquals("\\\\" + "\u0000", JavaParser.replaceUnicode("\\\\\\" + "u0000"));

    assertEquals("0", JavaParser.readNumber("0a"));
    assertEquals("0l", JavaParser.readNumber("0l"));
    assertEquals("0xFFL", JavaParser.readNumber("0xFFLx"));
    assertEquals("0xDadaCafe", JavaParser.readNumber("0xDadaCafex"));
    assertEquals("1.40e-45f", JavaParser.readNumber("1.40e-45fx"));
    assertEquals("1e1f", JavaParser.readNumber("1e1fx"));
    assertEquals("2.f", JavaParser.readNumber("2.fx"));
    assertEquals(".3d", JavaParser.readNumber(".3dx"));
    assertEquals("6.022137e+23f", JavaParser.readNumber("6.022137e+23f+1"));

    JavaParser parser = new JavaParser();
    parser.parse("src/tools/org/h2", "java.lang.Object");
    parser.parse("src/tools/org/h2", "java.lang.String");
    parser.parse("src/tools/org/h2", "java.lang.Math");
    parser.parse("src/tools/org/h2", "java.lang.Integer");
    parser.parse("src/tools/org/h2", "java.lang.Long");
    parser.parse("src/tools/org/h2", "java.lang.StringBuilder");
    parser.parse("src/tools/org/h2", "java.io.PrintStream");
    parser.parse("src/tools/org/h2", "java.lang.System");
    parser.parse("src/tools/org/h2", "java.util.Arrays");
    parser.parse("src/tools", "org.h2.java.TestApp");

    PrintWriter w = new PrintWriter(System.out);
    parser.writeHeader(w);
    parser.writeSource(w);
    w.flush();
    w = new PrintWriter(new FileWriter("bin/test.cpp"));
    parser.writeHeader(w);
    parser.writeSource(w);
    w.close();
  }