Skip to content
Snippets Groups Projects
Select Git revision
  • 61b2291fdda31e4131ae74b3b102194be2c1d9a6
  • master default
  • labcomm2014_tc31
  • labcomm2014
  • js
  • java_dyn_msg_dec
  • anders.blomdell
  • typeref
  • pragma
  • compiler-refactoring
  • labcomm2013
  • v2014.1
  • v2014.0
  • v2013.0
14 results

labcomm_pthread_mutex_lock.h

Blame
  • Forked from Anders Blomdell / LabComm
    Source project has a limited visibility.
    TestHandlerGen.java 2.25 KiB
    package test;
    
    import java.io.ByteArrayInputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.nio.CharBuffer;
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.Map;
    
    public class TestHandlerGen {
    
    	static class HandlerSrc {
    		private String sampleName;
    		private String param;
    		private String body;
    
    		private final String proto = "public void handle_";
    
    		public HandlerSrc(String sampleName, String param, String body) {
    			this.sampleName = sampleName;
    			this.param = param;
    			this.body = body;
    		}
    
    		public String getSrc() {
    			String res = proto+sampleName+"("+param+")"+body;
    			return res;
    		}
    	}
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    
    		/* input data: */
    		FileReader fr;
    		int len=0;;
    		CharBuffer buf = CharBuffer.allocate(1024);
    		try {
    			fr = new FileReader(args[0]);
    			len = fr.read(buf);
    			buf.rewind();
    		} catch (Throwable e) {
    			e.printStackTrace();
    			System.exit(1);
    		}
    
    		String srcStr = buf.toString().substring(0, len);
    
    		/* read declarations */
    		
    		int pos = 0;	
    		while(pos < srcStr.length()) {
    			System.out.println("--------");
    			int nameEnd = srcStr.indexOf(':', pos);
    
    			String name = srcStr.substring(pos,nameEnd);
    			System.out.println("Name="+name);
    
    			pos=nameEnd+1;
    			String par = "";
    			final String handler_decl = "handler(";
    			if(srcStr.startsWith(handler_decl, pos)) {
    				int endPar = srcStr.indexOf(')', pos);
    				par = srcStr.substring(pos+handler_decl.length(), endPar);
    
    				System.out.println("param="+par);
    				pos = endPar+1;
    			} else {
    				System.out.println("expeced handler decl:");	
    			}
    			int bodyEnd = srcStr.indexOf('}', pos); // HERE BE DRAGONS! too brittle
    			System.out.println("pos="+pos+", bodyEnd="+bodyEnd);
    			String body = srcStr.substring(pos, bodyEnd+1);
    			pos = bodyEnd+2;
    			System.out.println("body:");
    			System.out.println(body);
    
    			System.out.println("**** generates:");
    
    			HandlerSrc s = new HandlerSrc(name, par, body);
    			System.out.println(s.getSrc());
    		}
    	}
    }