Skip to content
Snippets Groups Projects
Select Git revision
  • 9c7a9e2ee83141bb582028fc43b0353bca829411
  • master default
  • anders.blomdell
  • typeref
  • pragma
  • compiler-refactoring
  • labcomm2013
  • v2014.1
  • v2014.0
  • v2013.0
10 results

Java_CodeGen.jrag

Blame
  • Forked from Anders Blomdell / LabComm
    Source project has a limited visibility.
    LabComm.java 9.18 KiB
    import AST.*;
    import java.io.*;
    import java.util.*;
    
    public class LabComm {
    
      private static void println(String s) {
        System.out.println(s);
      }
    
      private static void print_help() {
        println("\n Usage: java -jar labcom.jar [options*] FILE");
        println("");
        println(" --help                  Shows this help text");
        println(" -v                      Be verbose");
        println("[ C options ]");
        println(" -C                      Generates C/H code in FILE.[ch]");
        println(" --cprefix=PREFIX        Prefixes C types with PREFIX");
        println(" --cinclude=FILE         Include FILE in generated .c");
        println(" --c=CFILE               Generates C code in CFILE");
        println(" --h=HFILE               Generates H code in HFILE");
        println("[ C# options]");
        println(" --cs                    Generates C# code in FILE.cs");
        println(" --cs=CSFILE             Generates C# code in CSFILE");
        println(" --csnamespace=NAMESPACE Place C# classes in NAMESPACE");
        println("[ Java options ]");
        println(" --java=JDIR             Generates Java files in JDIR");
        println(" --javapackage=PACKAGE   Place Java classes in PACKAGE");
        println("[ Python options ]");
        println(" -P                      Generates Python code in FILE.py");
        println(" --python=PFILE          Generates Python code in PFILE");
        println("[ Misc options ]");
        println(" --pretty                Pretty prints on standard output");
        println(" --typeinfo=TIFILE       Generates typeinfo in TIFILE");
      }
        
      private static String getCoreName(String s) {
        int i = s.lastIndexOf('.');
        return s.substring(0, i > 0 ? i : s.length());
      }
    
      private static String getFileName(String s) {
        return s.substring(s.lastIndexOf('/') + 1, s.length());
      }
    
      private static String getBaseName(String s) {
        s = getFileName(s);
        int i = s.lastIndexOf('.');
        return s.substring(0, i > 0 ? i : s.length());
      }
    
      private static String getPrefix(String s) {
        return s.substring(s.lastIndexOf('/') + 1, s.length());
      }
    
      public static void main(String[] args) {
        String fileName = null;
        // Scan for first non-option
        for (int i = 0 ; i < args.length ; i++) {
          if (! args[i].startsWith("-")) {
    	fileName = args[i];
    	break;
          }
        }
        String coreName = null;
        String prefix = null;
        if (fileName != null) {
          coreName = getBaseName(fileName);
          prefix = getPrefix(coreName);
        }