*** empty log message ***
This commit is contained in:
		@ -1,38 +1,15 @@
 | 
			
		||||
/*
 | 
			
		||||
 * $Id: AseAwk.java,v 1.3 2007-04-11 15:21:24 bacon Exp $
 | 
			
		||||
 * $Id: AseAwk.java,v 1.4 2007-04-12 10:08:07 bacon Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.awt.*;
 | 
			
		||||
import java.awt.event.*;
 | 
			
		||||
 | 
			
		||||
public class AseAwk extends ase.awk.StdAwk
 | 
			
		||||
{
 | 
			
		||||
	public AseAwk () throws ase.awk.Exception
 | 
			
		||||
	{
 | 
			
		||||
		super ();
 | 
			
		||||
 | 
			
		||||
		addBuiltinFunction ("xxx", 1, 10); 
 | 
			
		||||
		//addBuiltinFunction ("xxx", 1, 1); 
 | 
			
		||||
		//deleteBuiltinFunction ("sin");
 | 
			
		||||
		//deleteBuiltinFunction ("sin");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public Object xxx (long runid, Object[] args)
 | 
			
		||||
	{
 | 
			
		||||
		System.out.println ("<<BFN_XXX>>");
 | 
			
		||||
		for (int i = 0; i < args.length; i++)
 | 
			
		||||
		{
 | 
			
		||||
			System.out.print ("ARG #" + i);
 | 
			
		||||
			System.out.print (": ");
 | 
			
		||||
			if (args[i] == null) System.out.println ("nil");
 | 
			
		||||
			else System.out.println (args[i].toString());
 | 
			
		||||
		}
 | 
			
		||||
		return null;
 | 
			
		||||
		//return new String ("return value");
 | 
			
		||||
		//return new Double (1.234);
 | 
			
		||||
		//return new Float (1.234);
 | 
			
		||||
		//return new Integer (1001);
 | 
			
		||||
		//return new Long (1001);
 | 
			
		||||
		//return new Short ((short)1001);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	protected String[] consoleInputNames ()
 | 
			
		||||
@ -74,16 +51,36 @@ public class AseAwk extends ase.awk.StdAwk
 | 
			
		||||
 | 
			
		||||
	public static void main (String[] args)
 | 
			
		||||
	{
 | 
			
		||||
		AseAwk awk = null;
 | 
			
		||||
		// AWT mode 
 | 
			
		||||
		if (args.length == 0)
 | 
			
		||||
		{
 | 
			
		||||
			final Frame frame = new Frame ();
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		URL url = ase.awk.Awk.class.getResource ("aseawk_jni.dll");
 | 
			
		||||
		if (url == null) url = ase.awk.Awk.class.getResource ("aseawk_jni.so");
 | 
			
		||||
		if (url != null) System.load (url.getFile());
 | 
			
		||||
		*/
 | 
			
		||||
			frame.setLayout (new BorderLayout());
 | 
			
		||||
			frame.setTitle (AseAwk.class.getName());
 | 
			
		||||
			frame.setSize (640, 480);
 | 
			
		||||
			frame.addWindowListener (new WindowListener ()
 | 
			
		||||
			{
 | 
			
		||||
				public void windowActivated (WindowEvent e) {}
 | 
			
		||||
				public void windowClosed (WindowEvent e) {}
 | 
			
		||||
				public void windowClosing (WindowEvent e) { frame.dispose (); }
 | 
			
		||||
				public void windowDeactivated (WindowEvent e) {}
 | 
			
		||||
				public void windowDeiconified (WindowEvent e) {}
 | 
			
		||||
				public void windowIconified (WindowEvent e) {}
 | 
			
		||||
				public void windowOpened (WindowEvent e) {}
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			frame.add (new AseAwkPanel(), BorderLayout.CENTER);
 | 
			
		||||
			frame.setVisible (true);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// console mode 
 | 
			
		||||
		AseAwk awk = null;
 | 
			
		||||
 | 
			
		||||
		if (args.length != 1)
 | 
			
		||||
		{
 | 
			
		||||
 | 
			
		||||
			System.err.println ("Usage: " + AseAwk.class.getName() + " jni");
 | 
			
		||||
			System.err.println ("Where jni := the full path to the jni library");
 | 
			
		||||
			return;
 | 
			
		||||
 | 
			
		||||
@ -1,108 +1,23 @@
 | 
			
		||||
/*
 | 
			
		||||
 * $Id: AseAwkApplet.java,v 1.3 2007-04-11 10:49:34 bacon Exp $
 | 
			
		||||
 * $Id: AseAwkApplet.java,v 1.4 2007-04-12 10:08:08 bacon Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import java.applet.*;
 | 
			
		||||
import java.awt.*;
 | 
			
		||||
import java.awt.event.*;
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
 | 
			
		||||
public class AseAwkApplet extends Applet
 | 
			
		||||
{
 | 
			
		||||
	private TextArea srcIn;
 | 
			
		||||
	private TextArea srcOut;
 | 
			
		||||
	private TextArea conIn;
 | 
			
		||||
	private TextArea conOut;
 | 
			
		||||
	private TextField jniLib;
 | 
			
		||||
	AseAwkPanel awkPanel;
 | 
			
		||||
 | 
			
		||||
	public void init () 
 | 
			
		||||
	{
 | 
			
		||||
		jniLib = new TextField ();
 | 
			
		||||
		awkPanel = new AseAwkPanel ();
 | 
			
		||||
 | 
			
		||||
		srcIn = new TextArea ();
 | 
			
		||||
		srcOut = new TextArea ();
 | 
			
		||||
		conIn = new TextArea ();
 | 
			
		||||
		conOut = new TextArea ();
 | 
			
		||||
 | 
			
		||||
		Button runBtn = new Button ("Run Awk");
 | 
			
		||||
 | 
			
		||||
		runBtn.addActionListener (new ActionListener ()
 | 
			
		||||
		{
 | 
			
		||||
			public void actionPerformed (ActionEvent e)
 | 
			
		||||
			{
 | 
			
		||||
				runAwk ();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		Panel topPanel = new Panel ();
 | 
			
		||||
		BorderLayout topPanelLayout = new BorderLayout ();
 | 
			
		||||
		topPanel.setLayout (topPanelLayout);
 | 
			
		||||
 | 
			
		||||
		topPanelLayout.setHgap (2);
 | 
			
		||||
		topPanelLayout.setVgap (2);
 | 
			
		||||
		topPanel.add (new Label ("JNI Library: "), BorderLayout.WEST);
 | 
			
		||||
		topPanel.add (jniLib, BorderLayout.CENTER);
 | 
			
		||||
 | 
			
		||||
		Panel centerPanel = new Panel ();
 | 
			
		||||
		GridLayout centerPanelLayout = new GridLayout (2, 2);
 | 
			
		||||
 | 
			
		||||
		centerPanel.setLayout (centerPanelLayout);
 | 
			
		||||
 | 
			
		||||
		centerPanelLayout.setHgap (2);
 | 
			
		||||
		centerPanelLayout.setVgap (2);
 | 
			
		||||
 | 
			
		||||
		centerPanel.add (srcIn);
 | 
			
		||||
		centerPanel.add (srcOut);
 | 
			
		||||
		centerPanel.add (conIn);
 | 
			
		||||
		centerPanel.add (conOut);
 | 
			
		||||
 | 
			
		||||
		BorderLayout mainLayout = new BorderLayout ();
 | 
			
		||||
		mainLayout.setHgap (2);
 | 
			
		||||
		mainLayout.setVgap (2);
 | 
			
		||||
 | 
			
		||||
		setLayout (mainLayout);
 | 
			
		||||
		
 | 
			
		||||
		add (topPanel, BorderLayout.NORTH);
 | 
			
		||||
		add (centerPanel, BorderLayout.CENTER);
 | 
			
		||||
		add (runBtn, BorderLayout.SOUTH);
 | 
			
		||||
 | 
			
		||||
		URL url = this.getClass().getResource ("AseAwk.class");
 | 
			
		||||
		File file = new File (url.getFile());
 | 
			
		||||
		
 | 
			
		||||
		jniLib.setText (file.getParentFile().getParentFile().getParent() + "/lib/.libs/libaseawk_jni.dylib");
 | 
			
		||||
		setLayout (new BorderLayout ());
 | 
			
		||||
		add (awkPanel, BorderLayout.CENTER);	
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void stop () {}
 | 
			
		||||
	public void paint (Graphics g) {}
 | 
			
		||||
 | 
			
		||||
	private void runAwk ()
 | 
			
		||||
	{
 | 
			
		||||
		AseAwk awk = null;
 | 
			
		||||
 | 
			
		||||
		try
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				System.load (jniLib.getText());
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				System.err.println ("xxx fuck you - cannot load library: " + e.getMessage());
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			awk = new AseAwk ();
 | 
			
		||||
			awk.parse ();
 | 
			
		||||
			awk.run ();
 | 
			
		||||
		}
 | 
			
		||||
		catch (ase.awk.Exception e)
 | 
			
		||||
		{
 | 
			
		||||
			System.out.println ("ase.awk.Exception - " + e.getMessage());
 | 
			
		||||
		}
 | 
			
		||||
		finally
 | 
			
		||||
		{
 | 
			
		||||
			if (awk != null) awk.close ();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										197
									
								
								ase/test/awk/AseAwkPanel.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										197
									
								
								ase/test/awk/AseAwkPanel.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,197 @@
 | 
			
		||||
/*
 | 
			
		||||
 * $Id: AseAwkPanel.java,v 1.1 2007-04-12 10:08:08 bacon Exp $
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import java.awt.*;
 | 
			
		||||
import java.awt.event.*;
 | 
			
		||||
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.io.StringReader;
 | 
			
		||||
import java.io.StringWriter;
 | 
			
		||||
 | 
			
		||||
import ase.awk.StdAwk;
 | 
			
		||||
 | 
			
		||||
public class AseAwkPanel extends Panel
 | 
			
		||||
{
 | 
			
		||||
	class Awk extends StdAwk
 | 
			
		||||
	{
 | 
			
		||||
		private AseAwkPanel awkPanel;
 | 
			
		||||
	
 | 
			
		||||
		private StringReader srcIn;
 | 
			
		||||
		private StringWriter srcOut;
 | 
			
		||||
	
 | 
			
		||||
		public Awk (AseAwkPanel awkPanel) throws Exception
 | 
			
		||||
		{
 | 
			
		||||
			super ();
 | 
			
		||||
			this.awkPanel = awkPanel;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
		protected int openSource (int mode)
 | 
			
		||||
		{
 | 
			
		||||
			if (mode == SOURCE_READ)
 | 
			
		||||
			{
 | 
			
		||||
				srcIn = new StringReader (awkPanel.getSourceInput());	
 | 
			
		||||
				return 1;
 | 
			
		||||
			}
 | 
			
		||||
			else if (mode == SOURCE_WRITE)
 | 
			
		||||
			{
 | 
			
		||||
				srcOut = new StringWriter ();
 | 
			
		||||
				return 1;
 | 
			
		||||
			}
 | 
			
		||||
	
 | 
			
		||||
			return -1;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
		protected int closeSource (int mode)
 | 
			
		||||
		{
 | 
			
		||||
			if (mode == SOURCE_READ)
 | 
			
		||||
			{
 | 
			
		||||
				srcIn.close ();
 | 
			
		||||
				return 0;
 | 
			
		||||
			}
 | 
			
		||||
			else if (mode == SOURCE_WRITE)
 | 
			
		||||
			{
 | 
			
		||||
				awkPanel.setSourceOutput (srcOut.toString());
 | 
			
		||||
	
 | 
			
		||||
				try { srcOut.close (); }
 | 
			
		||||
				catch (IOException e) { return -1; }
 | 
			
		||||
				return 0;
 | 
			
		||||
			}
 | 
			
		||||
	
 | 
			
		||||
			return -1;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
		protected int readSource (char[] buf, int len)
 | 
			
		||||
		{
 | 
			
		||||
			try { return srcIn.read (buf, 0, len); }
 | 
			
		||||
			catch (IOException e) { return -1; }
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
		protected int writeSource (char[] buf, int len)
 | 
			
		||||
		{
 | 
			
		||||
			srcOut.write (buf, 0, len);
 | 
			
		||||
			return len;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private TextArea srcIn;
 | 
			
		||||
	private TextArea srcOut;
 | 
			
		||||
	private TextArea conIn;
 | 
			
		||||
	private TextArea conOut;
 | 
			
		||||
	private TextField jniLib;
 | 
			
		||||
 | 
			
		||||
	public AseAwkPanel () 
 | 
			
		||||
	{
 | 
			
		||||
		jniLib = new TextField ();
 | 
			
		||||
 | 
			
		||||
		srcIn = new TextArea ();
 | 
			
		||||
		srcOut = new TextArea ();
 | 
			
		||||
		conIn = new TextArea ();
 | 
			
		||||
		conOut = new TextArea ();
 | 
			
		||||
 | 
			
		||||
		Button runBtn = new Button ("Run Awk");
 | 
			
		||||
 | 
			
		||||
		runBtn.addActionListener (new ActionListener ()
 | 
			
		||||
		{
 | 
			
		||||
			public void actionPerformed (ActionEvent e)
 | 
			
		||||
			{
 | 
			
		||||
				runAwk ();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		Panel topPanel = new Panel ();
 | 
			
		||||
		BorderLayout topPanelLayout = new BorderLayout ();
 | 
			
		||||
		topPanel.setLayout (topPanelLayout);
 | 
			
		||||
 | 
			
		||||
		topPanelLayout.setHgap (2);
 | 
			
		||||
		topPanelLayout.setVgap (2);
 | 
			
		||||
		topPanel.add (new Label ("JNI Library: "), BorderLayout.WEST);
 | 
			
		||||
		topPanel.add (jniLib, BorderLayout.CENTER);
 | 
			
		||||
 | 
			
		||||
		Panel centerPanel = new Panel ();
 | 
			
		||||
		GridLayout centerPanelLayout = new GridLayout (2, 2);
 | 
			
		||||
 | 
			
		||||
		centerPanel.setLayout (centerPanelLayout);
 | 
			
		||||
 | 
			
		||||
		centerPanelLayout.setHgap (2);
 | 
			
		||||
		centerPanelLayout.setVgap (2);
 | 
			
		||||
 | 
			
		||||
		centerPanel.add (srcIn);
 | 
			
		||||
		centerPanel.add (srcOut);
 | 
			
		||||
		centerPanel.add (conIn);
 | 
			
		||||
		centerPanel.add (conOut);
 | 
			
		||||
 | 
			
		||||
		BorderLayout mainLayout = new BorderLayout ();
 | 
			
		||||
		mainLayout.setHgap (2);
 | 
			
		||||
		mainLayout.setVgap (2);
 | 
			
		||||
 | 
			
		||||
		setLayout (mainLayout);
 | 
			
		||||
		
 | 
			
		||||
		add (topPanel, BorderLayout.NORTH);
 | 
			
		||||
		add (centerPanel, BorderLayout.CENTER);
 | 
			
		||||
		add (runBtn, BorderLayout.SOUTH);
 | 
			
		||||
 | 
			
		||||
		URL url = this.getClass().getResource ("AseAwkApplet.class");
 | 
			
		||||
		File file = new File (url.getFile());
 | 
			
		||||
		
 | 
			
		||||
		if (System.getProperty ("os.name").toLowerCase().startsWith ("windows"))
 | 
			
		||||
		{
 | 
			
		||||
			jniLib.setText (file.getParentFile().getParentFile().getParent() + "/lib/aseawk_jni.dll");
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			jniLib.setText (file.getParentFile().getParentFile().getParent() + "/lib/.libs/libaseawk_jni.dylib");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String getSourceInput ()
 | 
			
		||||
	{
 | 
			
		||||
		return srcIn.getText ();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setSourceOutput (String output)
 | 
			
		||||
	{
 | 
			
		||||
		srcOut.setText (output);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private void runAwk ()
 | 
			
		||||
	{
 | 
			
		||||
		Awk awk = null;
 | 
			
		||||
 | 
			
		||||
		try
 | 
			
		||||
		{
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				System.load (jniLib.getText());
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				System.err.println ("xxx fuck you - cannot load library: " + e.getMessage());
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			try
 | 
			
		||||
			{
 | 
			
		||||
				awk = new Awk (this);
 | 
			
		||||
			}
 | 
			
		||||
			catch (Exception e)
 | 
			
		||||
			{
 | 
			
		||||
				System.err.println ("cannot create awk - " + e.getMessage());
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			awk.parse ();
 | 
			
		||||
			awk.run ();
 | 
			
		||||
		}
 | 
			
		||||
		catch (ase.awk.Exception e)
 | 
			
		||||
		{
 | 
			
		||||
			System.out.println ("ase.awk.Exception - " + e.getMessage());
 | 
			
		||||
		}
 | 
			
		||||
		finally
 | 
			
		||||
		{
 | 
			
		||||
			if (awk != null) awk.close ();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user