From 179fa413b047bede6e32109e2ce82437c5fb8d34 Mon Sep 17 00:00:00 2001 From: MenTaLguY Date: Mon, 16 Jan 2006 02:36:01 +0000 Subject: moving trunk for module inkscape (bzr r1) --- src/dom/ImplGen.java | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100755 src/dom/ImplGen.java (limited to 'src/dom/ImplGen.java') diff --git a/src/dom/ImplGen.java b/src/dom/ImplGen.java new file mode 100755 index 000000000..b79f70725 --- /dev/null +++ b/src/dom/ImplGen.java @@ -0,0 +1,180 @@ + + +import java.io.*; +import java.util.StringTokenizer; + + + +public class ImplGen +{ +BufferedWriter out; +String className; +String defaultReturn; + +void trace(String msg) +{ + System.out.println(msg); +} + +void err(String msg) +{ + System.out.print("error:"); + System.out.println(msg); +} + +void p(String s) +{ + try + { + out.write(s); + } + catch (IOException e) + { + } +} + +void sp(int count) +{ + for (int i=0 ; i0 && Character.isLetter(s.charAt(0))) + { + defaultReturn = "NULL"; + } + else if (s.startsWith("~")) + { + defaultReturn = ""; + } + + int pos = s.indexOf("("); + if (!s.startsWith("~") && pos > 0 && + Character.isLetterOrDigit(s.charAt(pos-1))) + { + while (Character.isLetterOrDigit(s.charAt(pos-1))) + pos--; + String news = s.substring(0, pos) + + className + "::" + + s.substring(pos); + s = news; + } + + if (s.startsWith("~")) + { + p(className); p("::"); + p(s); p("\n"); + } + else if (s.startsWith("}") && defaultReturn.length()>0) + { + p(" return "); p(defaultReturn); p(";"); p("\n"); + p(s); p("\n"); + } + else + { + p(s); p("\n"); + } + + + +} + + + + + +void doIt(String inName) +{ + String cppName = inName + ".cpp"; + try + { + BufferedReader in = new BufferedReader(new FileReader(inName)); + out = new BufferedWriter(new FileWriter(cppName)); + while (true) + { + String s = in.readLine(); + if (s == null) + break; + process(s); + } + + in.close(); + out.close(); + } + catch (Exception e) + { + } + +} + + +public ImplGen() +{ +} + + +public static void main(String argv[]) +{ + if (argv.length != 1) + { + System.out.println("usage: ImplGen "); + return; + } + ImplGen ig = new ImplGen(); + ig.doIt(argv[0]); + +} + + + + + + + + + + + + + + + + + + + +} -- cgit v1.2.3