Recovered from cvs revision 2007-09-07 03:08:00
This commit is contained in:
parent
495d085cba
commit
f212242f01
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.cpp,v 1.52 2007/08/26 14:33:38 bacon Exp $
|
* $Id: Awk.cpp,v 1.53 2007/09/06 08:44:42 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -57,6 +57,16 @@ namespace ASE
|
|||||||
extio->handle = handle;
|
extio->handle = handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Awk::extio_t* Awk::Extio::getRawExtio () const
|
||||||
|
{
|
||||||
|
return extio;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Awk::run_t* Awk::Extio::getRawRun () const
|
||||||
|
{
|
||||||
|
return extio->run;
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////
|
||||||
// Awk::Pipe
|
// Awk::Pipe
|
||||||
//////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////
|
||||||
@ -690,14 +700,8 @@ namespace ASE
|
|||||||
runarg[i].ptr = ase_awk_strxdup (awk, args[i], runarg[i].len);
|
runarg[i].ptr = ase_awk_strxdup (awk, args[i], runarg[i].len);
|
||||||
if (runarg[i].ptr == ASE_NULL)
|
if (runarg[i].ptr == ASE_NULL)
|
||||||
{
|
{
|
||||||
if (i > 0)
|
while (i > 0) ase_awk_free (awk, runarg[--i].ptr);
|
||||||
{
|
ase_awk_free (awk, runarg);
|
||||||
for (i-- ; i > 0; i--)
|
|
||||||
{
|
|
||||||
ase_awk_free (awk, runarg[i].ptr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setError (ERR_NOMEM);
|
setError (ERR_NOMEM);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -715,10 +719,7 @@ namespace ASE
|
|||||||
|
|
||||||
if (runarg != ASE_NULL)
|
if (runarg != ASE_NULL)
|
||||||
{
|
{
|
||||||
for (i--; i > 0; i--)
|
while (i > 0) ase_awk_free (awk, runarg[--i].ptr);
|
||||||
{
|
|
||||||
ase_awk_free (awk, runarg[i].ptr);
|
|
||||||
}
|
|
||||||
ase_awk_free (awk, runarg);
|
ase_awk_free (awk, runarg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
110
ase/awk/Awk.hpp
110
ase/awk/Awk.hpp
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.hpp,v 1.50 2007/09/04 08:01:46 bacon Exp $
|
* $Id: Awk.hpp,v 1.52 2007/09/06 14:38:56 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _ASE_AWK_AWK_HPP_
|
#ifndef _ASE_AWK_AWK_HPP_
|
||||||
@ -12,24 +12,62 @@
|
|||||||
namespace ASE
|
namespace ASE
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* the awk class
|
* Provides the awk interpreter engine
|
||||||
*/
|
*/
|
||||||
class Awk
|
class Awk
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* boolean data type
|
||||||
|
*/
|
||||||
typedef ase_bool_t bool_t;
|
typedef ase_bool_t bool_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* data type that can hold any character
|
||||||
|
*/
|
||||||
|
|
||||||
typedef ase_char_t char_t;
|
typedef ase_char_t char_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* data type that can hold any character or
|
||||||
|
* an end-of-file value
|
||||||
|
*/
|
||||||
typedef ase_cint_t cint_t;
|
typedef ase_cint_t cint_t;
|
||||||
|
|
||||||
|
|
||||||
typedef ase_size_t size_t;
|
typedef ase_size_t size_t;
|
||||||
typedef ase_ssize_t ssize_t;
|
typedef ase_ssize_t ssize_t;
|
||||||
typedef ase_long_t long_t;
|
typedef ase_long_t long_t;
|
||||||
typedef ase_real_t real_t;
|
typedef ase_real_t real_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* represents an internal awk value
|
||||||
|
*/
|
||||||
typedef ase_awk_val_t val_t;
|
typedef ase_awk_val_t val_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* represents the internal hash table
|
||||||
|
*/
|
||||||
typedef ase_awk_map_t map_t;
|
typedef ase_awk_map_t map_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* represents a key/value pair
|
||||||
|
*/
|
||||||
typedef ase_awk_pair_t pair_t;
|
typedef ase_awk_pair_t pair_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* represents the external i/o operation
|
||||||
|
*/
|
||||||
typedef ase_awk_extio_t extio_t;
|
typedef ase_awk_extio_t extio_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* represents the run-time instance of an awk interpreter
|
||||||
|
*/
|
||||||
typedef ase_awk_run_t run_t;
|
typedef ase_awk_run_t run_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* reprensts the underlying awk interpreter
|
||||||
|
*/
|
||||||
typedef ase_awk_t awk_t;
|
typedef ase_awk_t awk_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,6 +110,17 @@ namespace ASE
|
|||||||
const void* getHandle () const;
|
const void* getHandle () const;
|
||||||
void setHandle (void* handle);
|
void setHandle (void* handle);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns the underlying extio_t handle
|
||||||
|
*/
|
||||||
|
const extio_t* getRawExtio () const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns the underlying run_t handle associated
|
||||||
|
* with the underlying extio_t handle
|
||||||
|
*/
|
||||||
|
const run_t* getRawRun () const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
extio_t* extio;
|
extio_t* extio;
|
||||||
};
|
};
|
||||||
@ -146,7 +195,7 @@ namespace ASE
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Argument
|
* Represents an argument to an intrinsic function
|
||||||
*/
|
*/
|
||||||
class Argument
|
class Argument
|
||||||
{
|
{
|
||||||
@ -197,7 +246,7 @@ namespace ASE
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return
|
* represents a return value of an intrinsic function
|
||||||
*/
|
*/
|
||||||
class Return
|
class Return
|
||||||
{
|
{
|
||||||
@ -233,7 +282,7 @@ namespace ASE
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ErrorCode
|
* represens the error code
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// generated by generrcode.awk
|
// generated by generrcode.awk
|
||||||
@ -475,52 +524,93 @@ namespace ASE
|
|||||||
virtual int run (const char_t* main = ASE_NULL,
|
virtual int run (const char_t* main = ASE_NULL,
|
||||||
const char_t** args = ASE_NULL, size_t nargs = 0);
|
const char_t** args = ASE_NULL, size_t nargs = 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* defines the user-defined function
|
||||||
|
*/
|
||||||
typedef int (Awk::*FunctionHandler) (
|
typedef int (Awk::*FunctionHandler) (
|
||||||
Return* ret, const Argument* args, size_t nargs,
|
Return* ret, const Argument* args, size_t nargs,
|
||||||
const char_t* name, size_t len);
|
const char_t* name, size_t len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* adds a new user-defined function
|
||||||
|
*/
|
||||||
virtual int addFunction (
|
virtual int addFunction (
|
||||||
const char_t* name, size_t minArgs, size_t maxArgs,
|
const char_t* name, size_t minArgs, size_t maxArgs,
|
||||||
FunctionHandler handler);
|
FunctionHandler handler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* deletes a user-defined function
|
||||||
|
*/
|
||||||
virtual int deleteFunction (const char_t* main);
|
virtual int deleteFunction (const char_t* main);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enables the run-time callback
|
||||||
|
*/
|
||||||
virtual void enableRunCallback ();
|
virtual void enableRunCallback ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* disables the run-time callback
|
||||||
|
*/
|
||||||
virtual void disableRunCallback ();
|
virtual void disableRunCallback ();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual int dispatchFunction (
|
virtual int dispatchFunction (
|
||||||
run_t* run, const char_t* name, size_t len);
|
run_t* run, const char_t* name, size_t len);
|
||||||
|
|
||||||
// source code io handlers
|
|
||||||
/**
|
/**
|
||||||
* openSource
|
* @name Source code I/O handlers
|
||||||
|
* A subclass should override the following methods to
|
||||||
|
* support the source code input and output.
|
||||||
|
* The awk interpreter calls the following methods when
|
||||||
|
* the parse method is invoked.
|
||||||
*/
|
*/
|
||||||
|
/*@{*/
|
||||||
|
/** opens the source stream */
|
||||||
virtual int openSource (Source& io) = 0;
|
virtual int openSource (Source& io) = 0;
|
||||||
|
/** closes the source stream */
|
||||||
virtual int closeSource (Source& io) = 0;
|
virtual int closeSource (Source& io) = 0;
|
||||||
|
/** reads from the source stream */
|
||||||
virtual ssize_t readSource (Source& io, char_t* buf, size_t len) = 0;
|
virtual ssize_t readSource (Source& io, char_t* buf, size_t len) = 0;
|
||||||
|
/** writes to the source stream */
|
||||||
virtual ssize_t writeSource (Source& io, char_t* buf, size_t len) = 0;
|
virtual ssize_t writeSource (Source& io, char_t* buf, size_t len) = 0;
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
// pipe io handlers
|
|
||||||
|
/**
|
||||||
|
* @name Pipe I/O handlers
|
||||||
|
* Pipe operations are achieved through the following methods.
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
virtual int openPipe (Pipe& io) = 0;
|
virtual int openPipe (Pipe& io) = 0;
|
||||||
virtual int closePipe (Pipe& io) = 0;
|
virtual int closePipe (Pipe& io) = 0;
|
||||||
virtual ssize_t readPipe (Pipe& io, char_t* buf, size_t len) = 0;
|
virtual ssize_t readPipe (Pipe& io, char_t* buf, size_t len) = 0;
|
||||||
virtual ssize_t writePipe (Pipe& io, char_t* buf, size_t len) = 0;
|
virtual ssize_t writePipe (Pipe& io, char_t* buf, size_t len) = 0;
|
||||||
virtual int flushPipe (Pipe& io) = 0;
|
virtual int flushPipe (Pipe& io) = 0;
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
// file io handlers
|
/**
|
||||||
|
* @name File I/O handlers
|
||||||
|
* File operations are achieved through the following methods.
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
virtual int openFile (File& io) = 0;
|
virtual int openFile (File& io) = 0;
|
||||||
virtual int closeFile (File& io) = 0;
|
virtual int closeFile (File& io) = 0;
|
||||||
virtual ssize_t readFile (File& io, char_t* buf, size_t len) = 0;
|
virtual ssize_t readFile (File& io, char_t* buf, size_t len) = 0;
|
||||||
virtual ssize_t writeFile (File& io, char_t* buf, size_t len) = 0;
|
virtual ssize_t writeFile (File& io, char_t* buf, size_t len) = 0;
|
||||||
virtual int flushFile (File& io) = 0;
|
virtual int flushFile (File& io) = 0;
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
// console io handlers
|
/**
|
||||||
|
* @name Console I/O handlers
|
||||||
|
* Console operations are achieved through the following methods.
|
||||||
|
*/
|
||||||
virtual int openConsole (Console& io) = 0;
|
virtual int openConsole (Console& io) = 0;
|
||||||
virtual int closeConsole (Console& io) = 0;
|
virtual int closeConsole (Console& io) = 0;
|
||||||
virtual ssize_t readConsole (Console& io, char_t* buf, size_t len) = 0;
|
virtual ssize_t readConsole (Console& io, char_t* buf, size_t len) = 0;
|
||||||
virtual ssize_t writeConsole (Console& io, char_t* buf, size_t len) = 0;
|
virtual ssize_t writeConsole (Console& io, char_t* buf, size_t len) = 0;
|
||||||
virtual int flushConsole (Console& io) = 0;
|
virtual int flushConsole (Console& io) = 0;
|
||||||
virtual int nextConsole (Console& io) = 0;
|
virtual int nextConsole (Console& io) = 0;
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
// run-time callbacks
|
// run-time callbacks
|
||||||
virtual void onRunStart (const Run& run);
|
virtual void onRunStart (const Run& run);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: StdAwk.cpp,v 1.24 2007/08/26 14:33:38 bacon Exp $
|
* $Id: StdAwk.cpp,v 1.25 2007/09/06 09:23:34 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ase/awk/StdAwk.hpp>
|
#include <ase/awk/StdAwk.hpp>
|
||||||
@ -129,6 +129,13 @@ namespace ASE
|
|||||||
return ret->set ((long_t)prevSeed);
|
return ret->set ((long_t)prevSeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER>=1400)
|
||||||
|
#define time_t __time64_t
|
||||||
|
#define time _time64
|
||||||
|
#define localtime _localtime64
|
||||||
|
#define gmtime _gmtime64
|
||||||
|
#endif
|
||||||
|
|
||||||
int StdAwk::systime (Return* ret, const Argument* args, size_t nargs,
|
int StdAwk::systime (Return* ret, const Argument* args, size_t nargs,
|
||||||
const char_t* name, size_t len)
|
const char_t* name, size_t len)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[0.2.1]
|
[0.3.0]
|
||||||
|
|
||||||
* added ase_awk_setword to enable customization of keywords and
|
* added ase_awk_setword to enable customization of keywords and
|
||||||
intrinsic function names.
|
intrinsic function names.
|
||||||
|
@ -10,9 +10,9 @@ ASE is a programming library implementing various programming languages and text
|
|||||||
|
|
||||||
Download the library source code from the following links.
|
Download the library source code from the following links.
|
||||||
|
|
||||||
ase-0.2.0.tgz
|
ase-0.3.0.tgz
|
||||||
[[[
|
[[[
|
||||||
* {Link 1,ase-0.2.0.tgz}
|
* {Link 1,ase-0.3.0.tgz}
|
||||||
]]]
|
]]]
|
||||||
|
|
||||||
== Documentation ==
|
== Documentation ==
|
||||||
|
@ -10,9 +10,9 @@ ASE는 임베딩을 목적으로 여러가지 프로그래밍언어를 구현하
|
|||||||
|
|
||||||
다음 링크에서 소스코드를 받을수 있다.
|
다음 링크에서 소스코드를 받을수 있다.
|
||||||
|
|
||||||
ase-0.2.0.tgz
|
ase-0.3.0.tgz
|
||||||
[[[
|
[[[
|
||||||
* {링크 1,ase-0.2.0.tgz}
|
* {링크 1,ase-0.3.0.tgz}
|
||||||
* 링크 2
|
* 링크 2
|
||||||
]]]
|
]]]
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.cpp,v 1.22 2007/08/24 13:17:59 bacon Exp $
|
* $Id: Awk.cpp,v 1.23 2007/09/06 08:44:42 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
@ -87,7 +87,15 @@ namespace ASE
|
|||||||
const char_t* getErrorString (ASE::Net::Awk^ wrapper, ErrorCode num) const
|
const char_t* getErrorString (ASE::Net::Awk^ wrapper, ErrorCode num) const
|
||||||
{
|
{
|
||||||
this->wrapper = wrapper;
|
this->wrapper = wrapper;
|
||||||
const char_t* x = Awk::getErrorString(num);
|
const char_t* x = Awk::getErrorString (num);
|
||||||
|
this->wrapper = nullptr;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
int setErrorString (ASE::Net::Awk^ wrapper, ErrorCode num, const char_t* msg)
|
||||||
|
{
|
||||||
|
this->wrapper = wrapper;
|
||||||
|
int x = Awk::setErrorString (num, msg);
|
||||||
this->wrapper = nullptr;
|
this->wrapper = nullptr;
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
@ -165,6 +173,7 @@ namespace ASE
|
|||||||
void onRunStart (const Run& run)
|
void onRunStart (const Run& run)
|
||||||
{
|
{
|
||||||
wrapper->runErrorReported = false;
|
wrapper->runErrorReported = false;
|
||||||
|
wrapper->stopRequested = false;
|
||||||
|
|
||||||
if (wrapper->OnRunStart != nullptr)
|
if (wrapper->OnRunStart != nullptr)
|
||||||
{
|
{
|
||||||
@ -197,6 +206,8 @@ namespace ASE
|
|||||||
|
|
||||||
void onRunStatement (const Run& run, size_t line)
|
void onRunStatement (const Run& run, size_t line)
|
||||||
{
|
{
|
||||||
|
if (wrapper->stopRequested) run.stop ();
|
||||||
|
|
||||||
if (wrapper->OnRunStatement != nullptr)
|
if (wrapper->OnRunStatement != nullptr)
|
||||||
{
|
{
|
||||||
wrapper->OnRunStatement (wrapper);
|
wrapper->OnRunStatement (wrapper);
|
||||||
@ -650,6 +661,20 @@ namespace ASE
|
|||||||
if (awk != NULL) awk->setOption (this, (int)this->option);
|
if (awk != NULL) awk->setOption (this, (int)this->option);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Awk::SetErrorString (Awk::ERROR num, System::String^ msg)
|
||||||
|
{
|
||||||
|
if (awk == NULL)
|
||||||
|
{
|
||||||
|
setError (ERROR::NOPER);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
cli::pin_ptr<const ASE::Awk::char_t> nptr = PtrToStringChars(msg);
|
||||||
|
bool r = (awk->setErrorString (this, (ASE::Awk::ErrorCode)num, nptr) == 0);
|
||||||
|
if (!r) { retrieveError (); }
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
void Awk::Close ()
|
void Awk::Close ()
|
||||||
{
|
{
|
||||||
if (awk != NULL)
|
if (awk != NULL)
|
||||||
@ -687,6 +712,7 @@ namespace ASE
|
|||||||
bool Awk::Run (System::String^ entryPoint, cli::array<System::String^>^ args)
|
bool Awk::Run (System::String^ entryPoint, cli::array<System::String^>^ args)
|
||||||
{
|
{
|
||||||
runErrorReported = false;
|
runErrorReported = false;
|
||||||
|
stopRequested = false;
|
||||||
|
|
||||||
if (awk == NULL)
|
if (awk == NULL)
|
||||||
{
|
{
|
||||||
@ -694,11 +720,12 @@ namespace ASE
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OnRunStart != nullptr || OnRunEnd != nullptr ||
|
// callback needs to be enabled to support the Stop method
|
||||||
OnRunReturn != nullptr || OnRunStatement != nullptr)
|
//if (OnRunStart != nullptr || OnRunEnd != nullptr ||
|
||||||
{
|
// OnRunReturn != nullptr || OnRunStatement != nullptr)
|
||||||
|
//{
|
||||||
awk->enableRunCallback (this);
|
awk->enableRunCallback (this);
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (args == nullptr || args->Length <= 0)
|
if (args == nullptr || args->Length <= 0)
|
||||||
{
|
{
|
||||||
@ -801,6 +828,11 @@ namespace ASE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Awk::Stop ()
|
||||||
|
{
|
||||||
|
stopRequested = true;
|
||||||
|
}
|
||||||
|
|
||||||
bool Awk::AddFunction (
|
bool Awk::AddFunction (
|
||||||
System::String^ name, int minArgs, int maxArgs,
|
System::String^ name, int minArgs, int maxArgs,
|
||||||
FunctionHandler^ handler)
|
FunctionHandler^ handler)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.hpp,v 1.20 2007/08/26 14:33:38 bacon Exp $
|
* $Id: Awk.hpp,v 1.21 2007/09/06 08:44:42 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -470,6 +470,11 @@ namespace ASE
|
|||||||
virtual bool Run ();
|
virtual bool Run ();
|
||||||
virtual bool Run (System::String^ entryPoint, cli::array<System::String^>^ args);
|
virtual bool Run (System::String^ entryPoint, cli::array<System::String^>^ args);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sets the request to stop the Run method
|
||||||
|
*/
|
||||||
|
virtual void Stop ();
|
||||||
|
|
||||||
delegate void RunStartHandler (Awk^ awk);
|
delegate void RunStartHandler (Awk^ awk);
|
||||||
delegate void RunEndHandler (Awk^ awk);
|
delegate void RunEndHandler (Awk^ awk);
|
||||||
delegate void RunReturnHandler (Awk^ awk);
|
delegate void RunReturnHandler (Awk^ awk);
|
||||||
@ -491,10 +496,12 @@ namespace ASE
|
|||||||
virtual bool SetMaxDepth (DEPTH id, size_t depth);
|
virtual bool SetMaxDepth (DEPTH id, size_t depth);
|
||||||
virtual bool GetMaxDepth (DEPTH id, size_t* depth);
|
virtual bool GetMaxDepth (DEPTH id, size_t* depth);
|
||||||
|
|
||||||
|
virtual bool SetErrorString (ERROR num, System::String^ str);
|
||||||
|
|
||||||
property OPTION Option
|
property OPTION Option
|
||||||
{
|
{
|
||||||
OPTION get (); //{ return this->option; }
|
OPTION get ();
|
||||||
void set (OPTION opt); //{ this->option = opt; }
|
void set (OPTION opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
property System::String^ ErrorMessage
|
property System::String^ ErrorMessage
|
||||||
@ -567,6 +574,7 @@ namespace ASE
|
|||||||
void setError (ERROR num);
|
void setError (ERROR num);
|
||||||
void retrieveError ();
|
void retrieveError ();
|
||||||
bool runErrorReported; // only used if the run-callback is activated.
|
bool runErrorReported; // only used if the run-callback is activated.
|
||||||
|
bool stopRequested;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: StdAwk.cpp,v 1.10 2007/09/05 14:42:06 bacon Exp $
|
* $Id: StdAwk.cpp,v 1.12 2007/09/06 09:23:34 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
@ -112,6 +112,13 @@ namespace ASE
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER>=1400)
|
||||||
|
#define time_t __time64_t
|
||||||
|
#define time _time64
|
||||||
|
#define localtime _localtime64
|
||||||
|
#define gmtime _gmtime64
|
||||||
|
#endif
|
||||||
|
|
||||||
bool StdAwk::Systime (System::String^ name, array<Argument^>^ args, Return^ ret)
|
bool StdAwk::Systime (System::String^ name, array<Argument^>^ args, Return^ ret)
|
||||||
{
|
{
|
||||||
ret->LongValue = (long_t)::time(NULL);
|
ret->LongValue = (long_t)::time(NULL);
|
||||||
@ -221,15 +228,8 @@ namespace ASE
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
try{
|
|
||||||
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
|
System::IO::StreamWriter^ sw = (System::IO::StreamWriter^)file->Handle;
|
||||||
sw->Close ();
|
sw->Close ();
|
||||||
}
|
|
||||||
catch (...)
|
|
||||||
|
|
||||||
{
|
|
||||||
System::Diagnostics::Debug::Print ("XXXXXX");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: doc.awk,v 1.3 2007/04/30 08:32:40 bacon Exp $
|
* $Id: doc.awk,v 1.4 2007/09/06 09:05:32 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
@ -56,7 +56,7 @@ BEGIN {
|
|||||||
empty_line_count = 0;
|
empty_line_count = 0;
|
||||||
para_started = 0;
|
para_started = 0;
|
||||||
|
|
||||||
#output=ARGV[0];
|
#output=ARGV[1];
|
||||||
#gsub (/\.man/, ".html", output);
|
#gsub (/\.man/, ".html", output);
|
||||||
#print "OUTPUT TO: " output;
|
#print "OUTPUT TO: " output;
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: lic.awk,v 1.3 2007/04/30 08:32:40 bacon Exp $
|
* $Id: lic.awk,v 1.4 2007/09/06 09:05:32 bacon Exp $
|
||||||
*
|
*
|
||||||
* {License}
|
* {License}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
NR == 1 {
|
NR == 1 {
|
||||||
new_file = ARGV[0];
|
new_file = ARGV[1];
|
||||||
printf "" > new_file; /* clear the file */
|
printf "" > new_file; /* clear the file */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
102
ase/test/awk/asetestawk++.dsp
Normal file
102
ase/test/awk/asetestawk++.dsp
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
# Microsoft Developer Studio Project File - Name="asetestawk++" - Package Owner=<4>
|
||||||
|
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||||
|
# ** DO NOT EDIT **
|
||||||
|
|
||||||
|
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||||
|
|
||||||
|
CFG=asetestawk++ - Win32 Debug
|
||||||
|
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||||
|
!MESSAGE use the Export Makefile command and run
|
||||||
|
!MESSAGE
|
||||||
|
!MESSAGE NMAKE /f "asetestawk++.mak".
|
||||||
|
!MESSAGE
|
||||||
|
!MESSAGE You can specify a configuration when running NMAKE
|
||||||
|
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||||
|
!MESSAGE
|
||||||
|
!MESSAGE NMAKE /f "asetestawk++.mak" CFG="asetestawk++ - Win32 Debug"
|
||||||
|
!MESSAGE
|
||||||
|
!MESSAGE Possible choices for configuration are:
|
||||||
|
!MESSAGE
|
||||||
|
!MESSAGE "asetestawk++ - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||||
|
!MESSAGE "asetestawk++ - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||||
|
!MESSAGE
|
||||||
|
|
||||||
|
# Begin Project
|
||||||
|
# PROP AllowPerConfigDependencies 0
|
||||||
|
# PROP Scc_ProjName ""
|
||||||
|
# PROP Scc_LocalPath ""
|
||||||
|
CPP=cl.exe
|
||||||
|
RSC=rc.exe
|
||||||
|
|
||||||
|
!IF "$(CFG)" == "asetestawk++ - Win32 Release"
|
||||||
|
|
||||||
|
# PROP BASE Use_MFC 0
|
||||||
|
# PROP BASE Use_Debug_Libraries 0
|
||||||
|
# PROP BASE Output_Dir "Release"
|
||||||
|
# PROP BASE Intermediate_Dir "Release"
|
||||||
|
# PROP BASE Target_Dir ""
|
||||||
|
# PROP Use_MFC 0
|
||||||
|
# PROP Use_Debug_Libraries 0
|
||||||
|
# PROP Output_Dir "../../release/bin"
|
||||||
|
# PROP Intermediate_Dir "release/cpp"
|
||||||
|
# PROP Ignore_Export_Lib 0
|
||||||
|
# PROP Target_Dir ""
|
||||||
|
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||||
|
# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /YX /FD /c
|
||||||
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||||
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||||
|
BSC32=bscmake.exe
|
||||||
|
# ADD BASE BSC32 /nologo
|
||||||
|
# ADD BSC32 /nologo
|
||||||
|
LINK32=link.exe
|
||||||
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||||
|
# ADD LINK32 asecmn.lib aseawk.lib aseawk++.lib aseutl.lib user32.lib kernel32.lib /nologo /subsystem:console /machine:I386 /out:"../../release/bin/aseawk++.exe" /libpath:"../../release/lib"
|
||||||
|
|
||||||
|
!ELSEIF "$(CFG)" == "asetestawk++ - Win32 Debug"
|
||||||
|
|
||||||
|
# PROP BASE Use_MFC 0
|
||||||
|
# PROP BASE Use_Debug_Libraries 1
|
||||||
|
# PROP BASE Output_Dir "Debug"
|
||||||
|
# PROP BASE Intermediate_Dir "Debug"
|
||||||
|
# PROP BASE Target_Dir ""
|
||||||
|
# PROP Use_MFC 0
|
||||||
|
# PROP Use_Debug_Libraries 1
|
||||||
|
# PROP Output_Dir "../../debug/bin"
|
||||||
|
# PROP Intermediate_Dir "debug/cpp"
|
||||||
|
# PROP Ignore_Export_Lib 0
|
||||||
|
# PROP Target_Dir ""
|
||||||
|
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||||
|
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /FR /YX /FD /GZ /c
|
||||||
|
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||||
|
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||||
|
BSC32=bscmake.exe
|
||||||
|
# ADD BASE BSC32 /nologo
|
||||||
|
# ADD BSC32 /nologo
|
||||||
|
LINK32=link.exe
|
||||||
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||||
|
# ADD LINK32 asecmn.lib aseawk.lib aseawk++.lib aseutl.lib user32.lib kernel32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../../debug/bin/aseawk++.exe" /pdbtype:sept /libpath:"../../debug/lib"
|
||||||
|
|
||||||
|
!ENDIF
|
||||||
|
|
||||||
|
# Begin Target
|
||||||
|
|
||||||
|
# Name "asetestawk++ - Win32 Release"
|
||||||
|
# Name "asetestawk++ - Win32 Debug"
|
||||||
|
# Begin Group "Source Files"
|
||||||
|
|
||||||
|
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\Awk.cpp
|
||||||
|
# End Source File
|
||||||
|
# End Group
|
||||||
|
# Begin Group "Header Files"
|
||||||
|
|
||||||
|
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||||
|
# End Group
|
||||||
|
# Begin Group "Resource Files"
|
||||||
|
|
||||||
|
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||||
|
# End Group
|
||||||
|
# End Target
|
||||||
|
# End Project
|
@ -36,7 +36,7 @@ BEGIN {
|
|||||||
for (pc = 0; pc >= 0; ) {
|
for (pc = 0; pc >= 0; ) {
|
||||||
addr = mem[pc] % 1000;
|
addr = mem[pc] % 1000;
|
||||||
code = int(mem[pc++] / 1000);
|
code = int(mem[pc++] / 1000);
|
||||||
if (code == op["get"]) { getline acc; }
|
if (code == op["get"]) { if (getline acc <= 0) acc = 0; }
|
||||||
else if (code == op["put"]) { print acc; }
|
else if (code == op["put"]) { print acc; }
|
||||||
else if (code == op["st"]) { mem[addr] = acc; }
|
else if (code == op["st"]) { mem[addr] = acc; }
|
||||||
else if (code == op["ld"]) { acc = mem[addr]; }
|
else if (code == op["ld"]) { acc = mem[addr]; }
|
||||||
|
@ -5,4 +5,4 @@ BEGIN {
|
|||||||
abc = 10;
|
abc = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [94] LINE [5] map 'abc' not assignable with a scalar
|
RUN ERROR: CODE [95] LINE [5] map 'abc' not assignable with a scalar
|
||||||
|
@ -2,4 +2,4 @@ BEGIN {
|
|||||||
delete ARGC;
|
delete ARGC;
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [86] LINE [2] variable 'ARGC' not deletable
|
RUN ERROR: CODE [87] LINE [2] variable 'ARGC' not deletable
|
||||||
|
@ -3,4 +3,4 @@ BEGIN {
|
|||||||
delete iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix;
|
delete iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix;
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [86] LINE [3] variable 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...' not deletable
|
RUN ERROR: CODE [87] LINE [3] variable 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...' not deletable
|
||||||
|
@ -2,4 +2,4 @@ BEGIN {
|
|||||||
helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhelphelp ();
|
helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhelphelp ();
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [84] LINE [2] function 'helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhel...' not found
|
RUN ERROR: CODE [85] LINE [2] function 'helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhel...' not found
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [55] LINE [2] built-in function 'substr' redefined
|
PARSE ERROR: CODE [56] LINE [2] built-in function 'substr' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [55] LINE [3] built-in function 'substr' redefined
|
PARSE ERROR: CODE [56] LINE [3] built-in function 'substr' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [56] LINE [9] function 'abc' redefined
|
PARSE ERROR: CODE [57] LINE [9] function 'abc' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [57] LINE [4] global variable 'abc' redefined
|
PARSE ERROR: CODE [58] LINE [4] global variable 'abc' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [58] LINE [4] parameter 'x' redefined
|
PARSE ERROR: CODE [59] LINE [4] parameter 'x' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [56] LINE [11] function 'abc' redefined
|
PARSE ERROR: CODE [57] LINE [11] function 'abc' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [56] LINE [1] function 'abc' redefined
|
PARSE ERROR: CODE [57] LINE [1] function 'abc' redefined
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [42] LINE [5] a colon expected in place of ';'
|
PARSE ERROR: CODE [43] LINE [5] a colon expected in place of ';'
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [37] LINE [2] a left parenthesis expected in place of '='
|
PARSE ERROR: CODE [38] LINE [2] a left parenthesis expected in place of '='
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [51] LINE [2] BEGIN not followed by a left bracket on the same line
|
PARSE ERROR: CODE [52] LINE [2] BEGIN not followed by a left bracket on the same line
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [62] LINE [1] '+' not a valid parameter name
|
PARSE ERROR: CODE [63] LINE [1] '+' not a valid parameter name
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [63] LINE [1] '+' not a valid variable name
|
PARSE ERROR: CODE [64] LINE [1] '+' not a valid variable name
|
||||||
|
@ -1 +1 @@
|
|||||||
PARSE ERROR: CODE [63] LINE [3] '+' not a valid variable name
|
PARSE ERROR: CODE [64] LINE [3] '+' not a valid variable name
|
||||||
|
@ -2,4 +2,4 @@ BEGIN {
|
|||||||
print abc > "123\0abc";
|
print abc > "123\0abc";
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [109] LINE [2] i/o name containing a null character
|
RUN ERROR: CODE [110] LINE [2] i/o name containing a null character
|
||||||
|
@ -3,4 +3,4 @@ BEGIN {
|
|||||||
split ("a b c",xx);
|
split ("a b c",xx);
|
||||||
}
|
}
|
||||||
|
|
||||||
RUN ERROR: CODE [95] LINE [3] cannot change a scalar value to a map
|
RUN ERROR: CODE [96] LINE [3] cannot change a scalar value to a map
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: Awk.cs,v 1.1 2007/09/03 03:50:39 bacon Exp $
|
* $Id: Awk.cs,v 1.2 2007/09/06 09:37:42 bacon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
@ -142,10 +142,10 @@ namespace ase.com
|
|||||||
set { awk.SupportBlockless = value; }
|
set { awk.SupportBlockless = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool StringBaseOne
|
public bool BaseOne
|
||||||
{
|
{
|
||||||
get { return awk.StringBaseOne; }
|
get { return awk.BaseOne; }
|
||||||
set { awk.StringBaseOne = value; }
|
set { awk.BaseOne = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool StripSpaces
|
public bool StripSpaces
|
||||||
|
123
ase/test/com/AwkForm.resx
Normal file
123
ase/test/com/AwkForm.resx
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
33
ase/test/com/Properties/AssemblyInfo.cs
Normal file
33
ase/test/com/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 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: AssemblyTitle("ase.com")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("ase.com")]
|
||||||
|
[assembly: AssemblyCopyright("© 2007 Hyung-Hwan Chung, All rights reserved.")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("7cd62543-7cf6-4b69-90b9-be0becdbfa19")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
63
ase/test/com/Properties/Resources.Designer.cs
generated
Normal file
63
ase/test/com/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:2.0.50727.42
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace ase.com.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
|
/// </summary>
|
||||||
|
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||||
|
// class via a tool like ResGen or Visual Studio.
|
||||||
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
|
// with the /str option, or rebuild your VS project.
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the cached ResourceManager instance used by this class.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ase.com.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Overrides the current thread's CurrentUICulture property for all
|
||||||
|
/// resource lookups using this strongly typed resource class.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
117
ase/test/com/Properties/Resources.resx
Normal file
117
ase/test/com/Properties/Resources.resx
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
26
ase/test/com/Properties/Settings.Designer.cs
generated
Normal file
26
ase/test/com/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:2.0.50727.42
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace ase.test.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default {
|
||||||
|
get {
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
ase/test/com/Properties/Settings.settings
Normal file
7
ase/test/com/Properties/Settings.settings
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||||
|
<Profiles>
|
||||||
|
<Profile Name="(Default)" />
|
||||||
|
</Profiles>
|
||||||
|
<Settings />
|
||||||
|
</SettingsFile>
|
86
ase/test/com/asecom.csproj
Normal file
86
ase/test/com/asecom.csproj
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProductVersion>8.0.50727</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{F14B75D8-3ED7-4621-B5B9-E96A80B5D809}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>ase.com</RootNamespace>
|
||||||
|
<AssemblyName>ase.com</AssemblyName>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\..\Debug\bin\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\..\Release\bin\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Interop.ASECOM, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\cnt\obj\Debug\Interop.ASECOM.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Awk.cs" />
|
||||||
|
<Compile Include="AwkForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="AwkForm.Designer.cs">
|
||||||
|
<DependentUpon>AwkForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<EmbeddedResource Include="AwkForm.resx">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<DependentUpon>AwkForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="StdAwk.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
@ -12,6 +12,17 @@ namespace ase.net
|
|||||||
System.Windows.Forms.TextBox consoleInput;
|
System.Windows.Forms.TextBox consoleInput;
|
||||||
System.Windows.Forms.TextBox consoleOutput;
|
System.Windows.Forms.TextBox consoleOutput;
|
||||||
|
|
||||||
|
System.ComponentModel.ISynchronizeInvoke si;
|
||||||
|
|
||||||
|
public Awk(System.ComponentModel.ISynchronizeInvoke si)
|
||||||
|
{
|
||||||
|
this.si = si;
|
||||||
|
SetSourceOutputHandlers += SetSourceOutput;
|
||||||
|
SetConsoleOutputHandlers += SetConsoleOutput;
|
||||||
|
|
||||||
|
AddFunction("sleep", 1, 1, Sleep);
|
||||||
|
}
|
||||||
|
|
||||||
public bool Parse(
|
public bool Parse(
|
||||||
System.Windows.Forms.TextBox sourceInput,
|
System.Windows.Forms.TextBox sourceInput,
|
||||||
System.Windows.Forms.TextBox sourceOutput)
|
System.Windows.Forms.TextBox sourceOutput)
|
||||||
@ -31,6 +42,13 @@ namespace ase.net
|
|||||||
return base.Run(main, args);
|
return base.Run(main, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected bool Sleep(string name, Argument[] args, Return ret)
|
||||||
|
{
|
||||||
|
System.Threading.Thread.Sleep((int)(args[0].LongValue*1000));
|
||||||
|
ret.LongValue = 0;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected override int OpenSource(ASE.Net.StdAwk.Source source)
|
protected override int OpenSource(ASE.Net.StdAwk.Source source)
|
||||||
{
|
{
|
||||||
//System.IO.FileMode mode;
|
//System.IO.FileMode mode;
|
||||||
@ -63,6 +81,22 @@ namespace ase.net
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public delegate void SetSourceOutputHandler(string text);
|
||||||
|
public delegate void SetConsoleOutputHandler(string text);
|
||||||
|
|
||||||
|
public event SetSourceOutputHandler SetSourceOutputHandlers;
|
||||||
|
public event SetConsoleOutputHandler SetConsoleOutputHandlers;
|
||||||
|
|
||||||
|
private void SetSourceOutput(string text)
|
||||||
|
{
|
||||||
|
sourceOutput.Text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetConsoleOutput(string text)
|
||||||
|
{
|
||||||
|
consoleOutput.Text = text;
|
||||||
|
}
|
||||||
|
|
||||||
protected override int CloseSource(ASE.Net.StdAwk.Source source)
|
protected override int CloseSource(ASE.Net.StdAwk.Source source)
|
||||||
{
|
{
|
||||||
if (source.Mode.Equals(ASE.Net.StdAwk.Source.MODE.READ))
|
if (source.Mode.Equals(ASE.Net.StdAwk.Source.MODE.READ))
|
||||||
@ -75,9 +109,16 @@ namespace ase.net
|
|||||||
{
|
{
|
||||||
System.IO.StreamWriter sw = (System.IO.StreamWriter)source.Handle;
|
System.IO.StreamWriter sw = (System.IO.StreamWriter)source.Handle;
|
||||||
sw.Flush();
|
sw.Flush();
|
||||||
|
|
||||||
System.IO.MemoryStream ms = (System.IO.MemoryStream)sw.BaseStream;
|
System.IO.MemoryStream ms = (System.IO.MemoryStream)sw.BaseStream;
|
||||||
sourceOutput.Text = UnicodeEncoding.UTF8.GetString(ms.GetBuffer());
|
|
||||||
sw.Close();
|
sw.Close();
|
||||||
|
|
||||||
|
// MSDN: This method(GetBuffer) works when the memory stream is closed.
|
||||||
|
//sourceOutput.Text = UnicodeEncoding.UTF8.GetString(ms.GetBuffer());
|
||||||
|
if (si != null && si.InvokeRequired)
|
||||||
|
si.Invoke(SetSourceOutputHandlers, new object[] { UnicodeEncoding.UTF8.GetString(ms.GetBuffer()) });
|
||||||
|
else SetSourceOutput (UnicodeEncoding.UTF8.GetString(ms.GetBuffer()));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,9 +171,16 @@ namespace ase.net
|
|||||||
{
|
{
|
||||||
System.IO.StreamWriter sw = (System.IO.StreamWriter)console.Handle;
|
System.IO.StreamWriter sw = (System.IO.StreamWriter)console.Handle;
|
||||||
sw.Flush();
|
sw.Flush();
|
||||||
|
|
||||||
System.IO.MemoryStream ms = (System.IO.MemoryStream)sw.BaseStream;
|
System.IO.MemoryStream ms = (System.IO.MemoryStream)sw.BaseStream;
|
||||||
consoleOutput.Text = UnicodeEncoding.UTF8.GetString(ms.GetBuffer());
|
|
||||||
sw.Close();
|
sw.Close();
|
||||||
|
|
||||||
|
// MSDN: This method(GetBuffer) works when the memory stream is closed.
|
||||||
|
//consoleOutput.Text = UnicodeEncoding.UTF8.GetString(ms.GetBuffer());
|
||||||
|
if (si != null && si.InvokeRequired)
|
||||||
|
si.Invoke(SetConsoleOutputHandlers, new object[] { UnicodeEncoding.UTF8.GetString(ms.GetBuffer()) });
|
||||||
|
else SetConsoleOutput(UnicodeEncoding.UTF8.GetString(ms.GetBuffer()));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,6 +197,7 @@ namespace ase.net
|
|||||||
{
|
{
|
||||||
System.IO.StreamWriter sw = (System.IO.StreamWriter)console.Handle;
|
System.IO.StreamWriter sw = (System.IO.StreamWriter)console.Handle;
|
||||||
sw.Write(buf, 0, len);
|
sw.Write(buf, 0, len);
|
||||||
|
sw.Flush();
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
26
ase/test/net/AwkForm.Designer.cs
generated
26
ase/test/net/AwkForm.Designer.cs
generated
@ -47,12 +47,12 @@ namespace ase.net
|
|||||||
this.panel2 = new System.Windows.Forms.Panel();
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.chkStripSpaces = new System.Windows.Forms.CheckBox();
|
||||||
this.chkPassArgumentsToEntryPoint = new System.Windows.Forms.CheckBox();
|
this.chkPassArgumentsToEntryPoint = new System.Windows.Forms.CheckBox();
|
||||||
this.btnClearAllArguments = new System.Windows.Forms.Button();
|
this.btnClearAllArguments = new System.Windows.Forms.Button();
|
||||||
this.btnAddArgument = new System.Windows.Forms.Button();
|
this.btnAddArgument = new System.Windows.Forms.Button();
|
||||||
this.tbxArgument = new System.Windows.Forms.TextBox();
|
this.tbxArgument = new System.Windows.Forms.TextBox();
|
||||||
this.lbxArguments = new System.Windows.Forms.ListBox();
|
this.lbxArguments = new System.Windows.Forms.ListBox();
|
||||||
this.chkStripSpaces = new System.Windows.Forms.CheckBox();
|
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
this.panel1.SuspendLayout();
|
this.panel1.SuspendLayout();
|
||||||
this.panel3.SuspendLayout();
|
this.panel3.SuspendLayout();
|
||||||
@ -281,6 +281,18 @@ namespace ase.net
|
|||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
this.groupBox1.Text = "Arguments";
|
this.groupBox1.Text = "Arguments";
|
||||||
//
|
//
|
||||||
|
// chkStripSpaces
|
||||||
|
//
|
||||||
|
this.chkStripSpaces.AutoSize = true;
|
||||||
|
this.chkStripSpaces.Checked = true;
|
||||||
|
this.chkStripSpaces.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.chkStripSpaces.Location = new System.Drawing.Point(19, 234);
|
||||||
|
this.chkStripSpaces.Name = "chkStripSpaces";
|
||||||
|
this.chkStripSpaces.Size = new System.Drawing.Size(86, 17);
|
||||||
|
this.chkStripSpaces.TabIndex = 5;
|
||||||
|
this.chkStripSpaces.Text = "Strip Spaces";
|
||||||
|
this.chkStripSpaces.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// chkPassArgumentsToEntryPoint
|
// chkPassArgumentsToEntryPoint
|
||||||
//
|
//
|
||||||
this.chkPassArgumentsToEntryPoint.AutoSize = true;
|
this.chkPassArgumentsToEntryPoint.AutoSize = true;
|
||||||
@ -328,18 +340,6 @@ namespace ase.net
|
|||||||
this.lbxArguments.Size = new System.Drawing.Size(147, 134);
|
this.lbxArguments.Size = new System.Drawing.Size(147, 134);
|
||||||
this.lbxArguments.TabIndex = 0;
|
this.lbxArguments.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// chkStripSpaces
|
|
||||||
//
|
|
||||||
this.chkStripSpaces.AutoSize = true;
|
|
||||||
this.chkStripSpaces.Checked = true;
|
|
||||||
this.chkStripSpaces.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
this.chkStripSpaces.Location = new System.Drawing.Point(19, 234);
|
|
||||||
this.chkStripSpaces.Name = "chkStripSpaces";
|
|
||||||
this.chkStripSpaces.Size = new System.Drawing.Size(86, 17);
|
|
||||||
this.chkStripSpaces.TabIndex = 5;
|
|
||||||
this.chkStripSpaces.Text = "Strip Spaces";
|
|
||||||
this.chkStripSpaces.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// AwkForm
|
// AwkForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user