diff --git a/ase/ase.sln b/ase/ase.sln
index 432fc73d..17ad571c 100644
--- a/ase/ase.sln
+++ b/ase/ase.sln
@@ -12,20 +12,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aseawk", "awk\aseawk.vcproj
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aesawk_jni", "awk\aseawk_jni.vcproj", "{23B58791-FD44-4F95-9F77-34E4AF45A296}"
ProjectSection(ProjectDependencies) = postProject
- {5F2E77D5-1485-48D1-9371-987BC55FEE83} = {5F2E77D5-1485-48D1-9371-987BC55FEE83}
{17621C83-40C9-4305-BAF9-132E250B5FE3} = {17621C83-40C9-4305-BAF9-132E250B5FE3}
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83} = {5F2E77D5-1485-48D1-9371-987BC55FEE83}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asecom", "com\asecom.vcproj", "{963AF7B5-12E6-42B6-8CBE-89136C1A109B}"
ProjectSection(ProjectDependencies) = postProject
- {5F2E77D5-1485-48D1-9371-987BC55FEE83} = {5F2E77D5-1485-48D1-9371-987BC55FEE83}
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD} = {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83} = {5F2E77D5-1485-48D1-9371-987BC55FEE83}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asetestawk", "test\awk\asetestawk.vcproj", "{57F1E1D0-28B6-42BF-BAFB-045AEE2DCF4F}"
ProjectSection(ProjectDependencies) = postProject
- {5F2E77D5-1485-48D1-9371-987BC55FEE83} = {5F2E77D5-1485-48D1-9371-987BC55FEE83}
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD} = {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}
+ {5F2E77D5-1485-48D1-9371-987BC55FEE83} = {5F2E77D5-1485-48D1-9371-987BC55FEE83}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aselsp", "lsp\aselsp.vcproj", "{42FE7CED-34B7-45C8-92C9-8856E16640D2}"
@@ -35,19 +35,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aselsp", "lsp\aselsp.vcproj
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asetestlsp", "test\lsp\asetestlsp.vcproj", "{868702B0-CB6B-4F1D-B98A-32193347EFAF}"
ProjectSection(ProjectDependencies) = postProject
- {42FE7CED-34B7-45C8-92C9-8856E16640D2} = {42FE7CED-34B7-45C8-92C9-8856E16640D2}
{C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD} = {C3EBBFAE-9D08-4FA2-8B0E-D09BEBF84EDD}
+ {42FE7CED-34B7-45C8-92C9-8856E16640D2} = {42FE7CED-34B7-45C8-92C9-8856E16640D2}
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "asecom_net", "com\asecom_net.csproj", "{89660879-3897-4078-A9C3-9C4667233E0A}"
- ProjectSection(ProjectDependencies) = postProject
- {963AF7B5-12E6-42B6-8CBE-89136C1A109B} = {963AF7B5-12E6-42B6-8CBE-89136C1A109B}
- EndProjectSection
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "asetestcom", "test\com\asetestcom.csproj", "{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "asetestcom_net", "test\com\asetestcom_net.csproj", "{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}"
- ProjectSection(ProjectDependencies) = postProject
- {89660879-3897-4078-A9C3-9C4667233E0A} = {89660879-3897-4078-A9C3-9C4667233E0A}
- EndProjectSection
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "asenet", "net\asenet.vcproj", "{4CBF0E86-D018-49D7-A6B8-0CDA698203F7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -139,16 +133,6 @@ Global
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Mixed Platforms.Build.0 = Release|Win32
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Win32.ActiveCfg = Release|Win32
{868702B0-CB6B-4F1D-B98A-32193347EFAF}.Release|Win32.Build.0 = Release|Win32
- {89660879-3897-4078-A9C3-9C4667233E0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Debug|Win32.ActiveCfg = Debug|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Release|Any CPU.Build.0 = Release|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {89660879-3897-4078-A9C3-9C4667233E0A}.Release|Win32.ActiveCfg = Release|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -159,6 +143,16 @@ Global
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}.Release|Win32.ActiveCfg = Release|Any CPU
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Debug|Mixed Platforms.Build.0 = Debug|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Debug|Win32.Build.0 = Debug|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Release|Any CPU.ActiveCfg = Release|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Release|Mixed Platforms.Build.0 = Release|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Release|Win32.ActiveCfg = Release|Win32
+ {4CBF0E86-D018-49D7-A6B8-0CDA698203F7}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ase/net/AssemblyInfo.cpp b/ase/net/AssemblyInfo.cpp
new file mode 100644
index 00000000..f857107c
--- /dev/null
+++ b/ase/net/AssemblyInfo.cpp
@@ -0,0 +1,40 @@
+#include "stdafx.h"
+
+using namespace System;
+using namespace System::Reflection;
+using namespace System::Runtime::CompilerServices;
+using namespace System::Runtime::InteropServices;
+using namespace System::Security::Permissions;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly:AssemblyTitleAttribute("asenet")];
+[assembly:AssemblyDescriptionAttribute("")];
+[assembly:AssemblyConfigurationAttribute("")];
+[assembly:AssemblyCompanyAttribute("")];
+[assembly:AssemblyProductAttribute("asenet")];
+[assembly:AssemblyCopyrightAttribute("Copyright (c) 2007")];
+[assembly:AssemblyTrademarkAttribute("")];
+[assembly:AssemblyCultureAttribute("")];
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the value or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly:AssemblyVersionAttribute("1.0.*")];
+
+[assembly:ComVisible(false)];
+
+[assembly:CLSCompliantAttribute(true)];
+
+[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];
diff --git a/ase/net/Stdafx.cpp b/ase/net/Stdafx.cpp
new file mode 100644
index 00000000..f3feb62d
--- /dev/null
+++ b/ase/net/Stdafx.cpp
@@ -0,0 +1,5 @@
+// stdafx.cpp : source file that includes just the standard includes
+// asenet.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
diff --git a/ase/net/Stdafx.h b/ase/net/Stdafx.h
new file mode 100644
index 00000000..3cc4c24e
--- /dev/null
+++ b/ase/net/Stdafx.h
@@ -0,0 +1,7 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently,
+// but are changed infrequently
+
+#pragma once
+
+
diff --git a/ase/net/app.ico b/ase/net/app.ico
new file mode 100644
index 00000000..3a5525fd
Binary files /dev/null and b/ase/net/app.ico differ
diff --git a/ase/net/app.rc b/ase/net/app.rc
new file mode 100644
index 00000000..807aa896
--- /dev/null
+++ b/ase/net/app.rc
@@ -0,0 +1,63 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon placed first or with lowest ID value becomes application icon
+
+LANGUAGE 9, 1
+#pragma code_page(1252)
+1 ICON "app.ico"
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+ "\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/ase/net/asenet.vcproj b/ase/net/asenet.vcproj
new file mode 100644
index 00000000..f1344397
--- /dev/null
+++ b/ase/net/asenet.vcproj
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ase/net/resource.h b/ase/net/resource.h
new file mode 100644
index 00000000..d5ac7c42
--- /dev/null
+++ b/ase/net/resource.h
@@ -0,0 +1,3 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by app.rc
diff --git a/ase/test/cnt/Awk.cs b/ase/test/cnt/Awk.cs
new file mode 100644
index 00000000..10ee21f0
--- /dev/null
+++ b/ase/test/cnt/Awk.cs
@@ -0,0 +1,398 @@
+/*
+ * $Id: Awk.cs,v 1.1 2007-04-22 08:30:33 bacon Exp $
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+
+using COM = System.Runtime.InteropServices.ComTypes;
+
+namespace ASE
+{
+ public class Awk : ASECOM.IAwkEvents
+ {
+ private ASECOM.Awk awk;
+
+ private int cookie = -1;
+ private COM.IConnectionPoint icp;
+
+ private Stream sourceInputStream = null;
+ private Stream sourceOutputStream = null;
+ private StreamReader sourceInputReader;
+ private StreamWriter sourceOutputWriter;
+
+ private Stream consoleInputStream = null;
+ private Stream consoleOutputStream = null;
+ private StreamReader consoleInputReader;
+ private StreamWriter consoleOutputWriter;
+
+ public delegate object FunctionHandler (object[] args);
+ private System.Collections.Hashtable funcTable;
+
+ public Awk()
+ {
+ this.funcTable = new System.Collections.Hashtable();
+
+ this.awk = new ASECOM.Awk();
+ this.awk.UseLongLong = true;
+
+ COM.IConnectionPointContainer icpc =
+ (COM.IConnectionPointContainer)awk;
+ Guid g = typeof(ASECOM.IAwkEvents).GUID;
+
+ try
+ {
+ icpc.FindConnectionPoint(ref g, out icp);
+ icp.Advise(this, out this.cookie);
+ }
+ catch (System.Runtime.InteropServices.COMException ex)
+ {
+ this.cookie = -1;
+ //System.Windows.Forms.MessageBox.Show(ex.Message);
+ }
+ }
+
+ /*~Awk()
+ {
+ if (cookie != -1 && icp != null)
+ {
+ try
+ {
+ icp.Unadvise(cookie);
+ cookie = -1;
+ }
+ catch (System.Runtime.InteropServices.COMException ex)
+ {
+ System.Windows.Forms.MessageBox.Show(ex.Message);
+ }
+ }
+ }*/
+
+ public int ErrorCode
+ {
+ get { return awk.ErrorCode; }
+ }
+
+ public int ErrorLine
+ {
+ get { return awk.ErrorLine; }
+ }
+
+ public string ErrorMessage
+ {
+ get { return awk.ErrorMessage; }
+ }
+
+ public bool ImplicitVariable
+ {
+ get { return awk.ImplicitVariable; }
+ set { awk.ImplicitVariable = value; }
+ }
+
+ public bool ExplicitVariable
+ {
+ get { return awk.ExplicitVariable; }
+ set { awk.ExplicitVariable = value; }
+ }
+
+ public bool UniqueFunction
+ {
+ get { return awk.UniqueFunction; }
+ set { awk.UniqueFunction = value; }
+ }
+
+ public bool VariableShading
+ {
+ get { return awk.VariableShading; }
+ set { awk.VariableShading = value; }
+ }
+
+ public bool ShiftOperators
+ {
+ get { return awk.ShiftOperators; }
+ set { awk.ShiftOperators = value; }
+ }
+
+ public bool IdivOperator
+ {
+ get { return awk.IdivOperator; }
+ set { awk.IdivOperator = value; }
+ }
+
+ public bool ConcatString
+ {
+ get { return awk.ConcatString; }
+ set { awk.ConcatString = value; }
+ }
+
+ public bool SupportExtio
+ {
+ get { return awk.SupportExtio; }
+ set { awk.SupportExtio = value; }
+ }
+
+ public bool SupportBlockless
+ {
+ get { return awk.SupportBlockless; }
+ set { awk.SupportBlockless = value; }
+ }
+
+ public bool StringBaseOne
+ {
+ get { return awk.StringBaseOne; }
+ set { awk.StringBaseOne = value; }
+ }
+
+ public bool StripSpaces
+ {
+ get { return awk.StripSpaces; }
+ set { awk.StripSpaces = value; }
+ }
+
+ public bool Nextofile
+ {
+ get { return awk.Nextofile; }
+ set { awk.Nextofile = value; }
+ }
+
+ public bool Usecrlf
+ {
+ get { return awk.UseCrlf; }
+ set { awk.UseCrlf = value; }
+ }
+
+ public string EntryPoint
+ {
+ get { return awk.EntryPoint; }
+ set { awk.EntryPoint = value; }
+ }
+
+ public bool ArgumentsToEntryPoint
+ {
+ get { return awk.ArgumentsToEntryPoint; }
+ set { awk.ArgumentsToEntryPoint = value; }
+ }
+
+ public bool Debug
+ {
+ get { return awk.Debug; }
+ set { awk.Debug = value; }
+ }
+
+ /* this property doesn't need to be available to the public
+ * as it can be always true in .NET environment. However,
+ * it is kept private here for reference */
+ private bool UseLongLong
+ {
+ get { return awk.UseLongLong; }
+ set { awk.UseLongLong = value; }
+ }
+
+ public int MaxDepthForBlockParse
+ {
+ get { return awk.MaxDepthForBlockParse; }
+ set { awk.MaxDepthForBlockParse = value; }
+ }
+
+ public int MaxDepthForBlockRun
+ {
+ get { return awk.MaxDepthForBlockRun; }
+ set { awk.MaxDepthForBlockRun = value; }
+ }
+
+ public int MaxDepthForExprParse
+ {
+ get { return awk.MaxDepthForExprParse; }
+ set { awk.MaxDepthForExprParse = value; }
+ }
+
+ public int MaxDepthForExprRun
+ {
+ get { return awk.MaxDepthForExprRun; }
+ set { awk.MaxDepthForExprRun = value; }
+ }
+
+ public int MaxDepthForRexBuild
+ {
+ get { return awk.MaxDepthForRexBuild; }
+ set { awk.MaxDepthForRexBuild = value; }
+ }
+
+ public int MaxDepthForRexMatch
+ {
+ get { return awk.MaxDepthForRexMatch; }
+ set { awk.MaxDepthForRexMatch = value; }
+ }
+
+ public virtual bool AddFunction(string name, int minArgs, int maxArgs, FunctionHandler handler)
+ {
+ if (funcTable.ContainsKey(name)) return false;
+
+ funcTable.Add(name, handler);
+ if (!awk.AddFunction(name, minArgs, maxArgs))
+ {
+ funcTable.Remove(name);
+ return false;
+ }
+
+ return true;
+ }
+
+ public virtual bool DeleteFunction(string name)
+ {
+ if (!funcTable.ContainsKey(name)) return false;
+
+ if (awk.DeleteFunction(name))
+ {
+ funcTable.Remove(name);
+ return true;
+ }
+
+ return false;
+ }
+
+ public virtual bool Parse()
+ {
+ return awk.Parse();
+ }
+
+ public virtual bool Run ()
+ {
+ return awk.Run(null);
+ }
+
+ public virtual bool Run(string[] args)
+ {
+ return awk.Run(args);
+ }
+
+ public Stream SourceInputStream
+ {
+ get { return this.sourceInputStream; }
+ set { this.sourceInputStream = value; }
+ }
+
+ public Stream SourceOutputStream
+ {
+ get { return this.sourceOutputStream; }
+ set { this.sourceOutputStream = value; }
+ }
+
+ public Stream ConsoleInputStream
+ {
+ get { return this.consoleInputStream; }
+ set { this.consoleInputStream = value; }
+ }
+
+ public Stream ConsoleOutputStream
+ {
+ get { return this.consoleOutputStream; }
+ set { this.consoleOutputStream = value; }
+ }
+
+ public virtual int OpenSource(ASECOM.AwkSourceMode mode)
+ {
+ if (mode == ASECOM.AwkSourceMode.AWK_SOURCE_READ)
+ {
+ if (this.sourceInputStream == null) return 0;
+ this.sourceInputReader = new StreamReader (this.sourceInputStream);
+ return 1;
+ }
+ else if (mode == ASECOM.AwkSourceMode.AWK_SOURCE_WRITE)
+ {
+ if (this.sourceOutputStream == null) return 0;
+ this.sourceOutputWriter = new StreamWriter (this.sourceOutputStream);
+ return 1;
+ }
+
+ return -1;
+ }
+
+ public virtual int CloseSource(ASECOM.AwkSourceMode mode)
+ {
+ if (mode == ASECOM.AwkSourceMode.AWK_SOURCE_READ)
+ {
+ this.sourceInputReader.Close ();
+ return 0;
+ }
+ else if (mode == ASECOM.AwkSourceMode.AWK_SOURCE_WRITE)
+ {
+ this.sourceOutputWriter.Close ();
+ return 0;
+ }
+
+ return -1;
+ }
+
+ public virtual int ReadSource(ASECOM.Buffer buf)
+ {
+ buf.Value = this.sourceInputReader.ReadLine();
+ if (buf.Value == null) return 0;
+ return buf.Value.Length;
+ }
+
+ public virtual int WriteSource(ASECOM.Buffer buf)
+ {
+ this.sourceOutputWriter.Write(buf.Value);
+ return buf.Value.Length;
+ }
+
+ public virtual int OpenExtio(ASECOM.AwkExtio extio)
+ {
+ if (extio.Mode == ASECOM.AwkExtioMode.AWK_EXTIO_CONSOLE_WRITE)
+ {
+ if (this.consoleOutputStream == null) return 0;
+ this.consoleOutputWriter = new StreamWriter(this.consoleOutputStream);
+ return 1;
+ }
+
+ return -1;
+ }
+
+ public virtual int CloseExtio(ASECOM.AwkExtio extio)
+ {
+ if (extio.Mode == ASECOM.AwkExtioMode.AWK_EXTIO_CONSOLE_WRITE)
+ {
+ this.consoleOutputWriter.Close();
+ return 0;
+ }
+
+ return -1;
+ }
+
+ public virtual int ReadExtio(ASECOM.AwkExtio extio, ASECOM.Buffer buf)
+ {
+ throw new Exception("The method or operation is not implemented.");
+ }
+
+ public virtual int WriteExtio(ASECOM.AwkExtio extio, ASECOM.Buffer buf)
+ {
+ if (extio.Mode == ASECOM.AwkExtioMode.AWK_EXTIO_CONSOLE_WRITE)
+ {
+ this.consoleOutputWriter.Write(buf.Value);
+ return buf.Value.Length;
+ }
+
+ return -1;
+ }
+
+ public virtual int FlushExtio(ASECOM.AwkExtio extio)
+ {
+ return -1;
+ }
+
+ public virtual int NextExtio(ASECOM.AwkExtio extio)
+ {
+ return 1;
+ }
+
+ public virtual object HandleFunction(string name, object argarray)
+ {
+ FunctionHandler handler = (FunctionHandler)funcTable[name];
+ return handler((object[])argarray);
+ }
+
+ }
+}
diff --git a/ase/test/cnt/StdAwk.cs b/ase/test/cnt/StdAwk.cs
new file mode 100644
index 00000000..4c166b3e
--- /dev/null
+++ b/ase/test/cnt/StdAwk.cs
@@ -0,0 +1,60 @@
+/*
+ * $Id: StdAwk.cs,v 1.1 2007-04-22 08:30:33 bacon Exp $
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ASE
+{
+ public class StdAwk: Awk
+ {
+ public StdAwk(): base ()
+ {
+ AddFunction("sin", 1, 1, new FunctionHandler(handleSin));
+ AddFunction("cos", 1, 1, new FunctionHandler(handleCos));
+ AddFunction("tan", 1, 1, new FunctionHandler(handleTan));
+ }
+
+ protected virtual object handleSin(object[] args)
+ {
+ if (args[0] is System.Double)
+ {
+ return System.Math.Sin((double)args[0]);
+ }
+ else if (args[0] is System.Int32)
+ {
+ return System.Math.Sin((double)(int)args[0]);
+ }
+ else if (args[0] is System.Int64)
+ {
+ return System.Math.Sin((double)(long)args[0]);
+ }
+ else if (args[0] is string)
+ {
+ double t;
+
+ /* TODO: atoi */
+ try { t = System.Double.Parse((string)args[0]); }
+ catch (System.Exception e) { t = 0; }
+
+ return System.Math.Sin(t);
+ }
+ else
+ {
+ return System.Math.Sin(0.0);
+ }
+ }
+
+ protected virtual object handleCos(object[] args)
+ {
+ return 0;
+ }
+
+ protected virtual object handleTan(object[] args)
+ {
+ return 0;
+ }
+ }
+}
diff --git a/ase/test/cnt/asetestcnt.csproj b/ase/test/cnt/asetestcnt.csproj
new file mode 100644
index 00000000..2a91e8f2
--- /dev/null
+++ b/ase/test/cnt/asetestcnt.csproj
@@ -0,0 +1,88 @@
+
+
+ Debug
+ AnyCPU
+ 8.0.50727
+ 2.0
+ {F14B75D8-3ED7-4621-B5B9-E96A80B5D809}
+ WinExe
+ Properties
+ asetestcom_net
+ asecom_net
+
+
+ true
+ full
+ false
+ ..\..\Debug\bin\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\Release\bin\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+ .exe
+ ..\..\release\lib\asecom_net.dll
+
+
+ False
+ ..\..\release\lib\Interop.ASECOM.dll
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ AwkForm.cs
+
+
+
+
+ Designer
+ AwkForm.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
\ No newline at end of file