This commit is contained in:
60
ase/cmd/com/StdAwk.cs
Normal file
60
ase/cmd/com/StdAwk.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* $Id: StdAwk.cs,v 1.2 2007/09/18 14:30:41 bacon Exp $
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace ase.com
|
||||
{
|
||||
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) { 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user