Recovered from cvs revision 2007-09-29 01:11:00
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: Awk.cpp,v 1.35 2007/09/25 15:27:54 bacon Exp $
|
||||
* $Id: Awk.cpp,v 1.36 2007/09/27 11:30:20 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/StdAwk.hpp>
|
||||
@ -544,8 +544,6 @@ static void print_usage (const ase_char_t* argv0)
|
||||
ase_printf (ASE_T(" -w o:n Specify an old and new word pair\n"));
|
||||
ase_printf (ASE_T(" o - an original word\n"));
|
||||
ase_printf (ASE_T(" n - the new word to replace the original\n"));
|
||||
ase_printf (ASE_T(" -ns Don't strip whitespaces\n"));
|
||||
ase_printf (ASE_T(" The STRIPSPACES option is truned off\n"));
|
||||
}
|
||||
|
||||
int awk_main (int argc, ase_char_t* argv[])
|
||||
@ -560,6 +558,30 @@ int awk_main (int argc, ase_char_t* argv[])
|
||||
ase_size_t nsrcins = 0;
|
||||
ase_size_t nsrcouts = 0;
|
||||
|
||||
struct
|
||||
{
|
||||
const ase_char_t* name;
|
||||
TestAwk::Option opt;
|
||||
} otab[] =
|
||||
{
|
||||
{ ASE_T("implicit"), TestAwk::OPT_IMPLICIT },
|
||||
{ ASE_T("explicit"), TestAwk::OPT_EXPLICIT },
|
||||
{ ASE_T("uniquefn"), TestAwk::OPT_UNIQUEFN },
|
||||
{ ASE_T("shading"), TestAwk::OPT_SHADING },
|
||||
{ ASE_T("shift"), TestAwk::OPT_SHIFT },
|
||||
{ ASE_T("idiv"), TestAwk::OPT_IDIV },
|
||||
{ ASE_T("strconcat"), TestAwk::OPT_STRCONCAT },
|
||||
{ ASE_T("extio"), TestAwk::OPT_EXTIO },
|
||||
{ ASE_T("blockless"), TestAwk::OPT_BLOCKLESS },
|
||||
{ ASE_T("baseone"), TestAwk::OPT_BASEONE },
|
||||
{ ASE_T("stripspaces"), TestAwk::OPT_STRIPSPACES },
|
||||
{ ASE_T("nextofile"), TestAwk::OPT_NEXTOFILE },
|
||||
{ ASE_T("crfl"), TestAwk::OPT_CRLF },
|
||||
{ ASE_T("argstomain"), TestAwk::OPT_ARGSTOMAIN },
|
||||
{ ASE_T("reset"), TestAwk::OPT_RESET },
|
||||
{ ASE_T("maptovar"), TestAwk::OPT_MAPTOVAR }
|
||||
};
|
||||
|
||||
if (awk.open() == -1)
|
||||
{
|
||||
ase_fprintf (stderr, ASE_T("cannot open awk\n"));
|
||||
@ -577,30 +599,41 @@ int awk_main (int argc, ase_char_t* argv[])
|
||||
else if (ase_strcmp(argv[i], ASE_T("-a")) == 0) mode = 5;
|
||||
else if (ase_strcmp(argv[i], ASE_T("-m")) == 0) mode = 6;
|
||||
else if (ase_strcmp(argv[i], ASE_T("-w")) == 0) mode = 7;
|
||||
else if (ase_strcmp(argv[i], ASE_T("-nostripspaces")) == 0)
|
||||
{
|
||||
awk.setOption (awk.getOption () & ~TestAwk::OPT_STRIPSPACES);
|
||||
}
|
||||
else if (ase_strcmp(argv[i], ASE_T("-noimplicit")) == 0)
|
||||
{
|
||||
awk.setOption (awk.getOption () & ~TestAwk::OPT_IMPLICIT);
|
||||
}
|
||||
else if (ase_strcmp(argv[i], ASE_T("-noexplicit")) == 0)
|
||||
{
|
||||
awk.setOption (awk.getOption () & ~TestAwk::OPT_EXPLICIT);
|
||||
}
|
||||
else if (ase_strcmp(argv[i], ASE_T("-noshading")) == 0)
|
||||
{
|
||||
awk.setOption (awk.getOption () & ~TestAwk::OPT_SHADING);
|
||||
}
|
||||
else if (ase_strcmp(argv[i], ASE_T("-reset")) == 0)
|
||||
{
|
||||
awk.setOption (awk.getOption () | TestAwk::OPT_RESET);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (argv[i][0] == ASE_T('-'))
|
||||
{
|
||||
int j;
|
||||
|
||||
if (argv[i][1] == ASE_T('n') && argv[i][2] == ASE_T('o'))
|
||||
{
|
||||
for (j = 0; j < ASE_COUNTOF(otab); j++)
|
||||
{
|
||||
if (ase_strcmp(&argv[i][3], otab[j].name) == 0)
|
||||
{
|
||||
awk.setOption (awk.getOption() & ~otab[j].opt);
|
||||
goto ok_valid;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (j = 0; j < ASE_COUNTOF(otab); j++)
|
||||
{
|
||||
if (ase_strcmp(&argv[i][1], otab[j].name) == 0)
|
||||
{
|
||||
awk.setOption (awk.getOption() | otab[j].opt);
|
||||
goto ok_valid;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print_usage (argv[0]);
|
||||
return -1;
|
||||
|
||||
ok_valid:
|
||||
;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1,8 +1,8 @@
|
||||
#
|
||||
# $Id: asm.awk,v 1.4 2007/09/27 11:33:45 bacon Exp $
|
||||
#
|
||||
# Taken from the book "The AWK Programming Language"
|
||||
# aseawk++ -si asm.awk -nostripspaces -a asm.s
|
||||
#
|
||||
# ASEAWK should turn on STRIPSPACES & BASEONE to run this program.
|
||||
# aseawk++ -si asm.awk -a asm.s -nostripspaces -baseone
|
||||
#
|
||||
|
||||
BEGIN {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: awk.c,v 1.15 2007/09/23 16:48:55 bacon Exp $
|
||||
* $Id: awk.c,v 1.16 2007/09/27 11:30:20 bacon Exp $
|
||||
*/
|
||||
|
||||
#include <ase/awk/awk.h>
|
||||
@ -900,17 +900,21 @@ static int awk_main (int argc, ase_char_t* argv[])
|
||||
int deparse = 0;
|
||||
|
||||
opt = ASE_AWK_IMPLICIT |
|
||||
ASE_AWK_EXPLICIT |
|
||||
/*ASE_AWK_EXPLICIT |*/
|
||||
ASE_AWK_UNIQUEFN |
|
||||
ASE_AWK_IDIV |
|
||||
ASE_AWK_SHADING |
|
||||
ASE_AWK_SHIFT |
|
||||
/*ASE_AWK_SHIFT |*/
|
||||
/*ASE_AWK_IDIV |*/
|
||||
/*ASE_AWK_STRCONCAT |*/
|
||||
ASE_AWK_EXTIO |
|
||||
ASE_AWK_BLOCKLESS |
|
||||
ASE_AWK_BASEONE |
|
||||
ASE_AWK_STRIPSPACES |
|
||||
ASE_AWK_NEXTOFILE /*|
|
||||
ASE_AWK_ARGSTOMAIN*/;
|
||||
ASE_AWK_BASEONE /*|*/
|
||||
/*ASE_AWK_STRIPSPACES |*/
|
||||
/*ASE_AWK_NEXTOFILE |*/
|
||||
/*ASE_AWK_CRLF |*/
|
||||
/*ASE_AWK_ARGSTOMAIN |*/
|
||||
/*ASE_AWK_RESET*/
|
||||
/*ASE_AWK_MAPTOVAR*/;
|
||||
|
||||
if (argc <= 1)
|
||||
{
|
||||
|
@ -1,5 +1,3 @@
|
||||
global abc;
|
||||
|
||||
BEGIN {
|
||||
abc[20] = "abc";
|
||||
abc = 10;
|
||||
|
@ -5,4 +5,4 @@ BEGIN {
|
||||
abc = 10;
|
||||
}
|
||||
|
||||
RUN ERROR: CODE [95] LINE [5] map 'abc' not assignable with a scalar
|
||||
RUN ERROR: CODE [96] LINE [5] map 'abc' not assignable with a scalar
|
||||
|
@ -2,4 +2,4 @@ BEGIN {
|
||||
delete ARGC;
|
||||
}
|
||||
|
||||
RUN ERROR: CODE [87] LINE [2] variable 'ARGC' not deletable
|
||||
RUN ERROR: CODE [88] LINE [2] variable 'ARGC' not deletable
|
||||
|
@ -3,4 +3,4 @@ BEGIN {
|
||||
delete iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiix;
|
||||
}
|
||||
|
||||
RUN ERROR: CODE [87] LINE [3] variable 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...' not deletable
|
||||
RUN ERROR: CODE [88] LINE [3] variable 'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...' not deletable
|
||||
|
@ -2,4 +2,4 @@ BEGIN {
|
||||
helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhelphelp ();
|
||||
}
|
||||
|
||||
RUN ERROR: CODE [85] LINE [2] function 'helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhel...' not found
|
||||
RUN ERROR: CODE [86] LINE [2] function 'helpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhel...' not found
|
||||
|
@ -2,4 +2,4 @@ BEGIN {
|
||||
print abc > "123\0abc";
|
||||
}
|
||||
|
||||
RUN ERROR: CODE [110] LINE [2] i/o name containing a null character
|
||||
RUN ERROR: CODE [112] LINE [2] i/o name containing a null character
|
||||
|
@ -3,4 +3,4 @@ BEGIN {
|
||||
split ("a b c",xx);
|
||||
}
|
||||
|
||||
RUN ERROR: CODE [96] LINE [3] cannot change a scalar value to a map
|
||||
RUN ERROR: CODE [97] LINE [3] cannot change a scalar value to a map
|
||||
|
Reference in New Issue
Block a user