/* * Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License, * Version 1.0, and under the Eclipse Public License, Version 1.0 * (http://h2database.com/html/license.html). * Initial Developer: H2 Group */ package org.h2.java; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import org.h2.test.TestBase; /** * A test for the Java parser. */ public class Test extends TestBase { /** * Start the task with the given arguments. * * @param args the arguments, or null */ public static void main(String... args) throws IOException { new Test().test(); } 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(); } }