* $Log: walk.c,v $
*/
-#include "handy.h"
#include "EXTERN.h"
-#include "util.h"
#include "a2p.h"
+#include "util.h"
bool exitval = FALSE;
bool realexit = FALSE;
STR *subs;
STR *curargs = Nullstr;
+static void addsemi _(( STR *str ));
+static void emit_split _(( STR *str, int level ));
+static void fixtab _(( STR *str, int lvl ));
+static void numericize _(( int node ));
+static void tab _(( STR *str, int lvl ));
+
+int prewalk _(( int numit, int level, int node, int *numericptr ));
+STR * walk _(( int useval, int level, int node, int *numericptr, int minprec ));
+
+
STR *
walk(useval,level,node,numericptr,minprec)
int useval;
int numeric = FALSE;
STR *fstr;
int prec = P_MAX; /* assume no parens needed */
- char *strchr();
if (!node) {
*numericptr = 0;
return str;
}
+static void
tab(str,lvl)
register STR *str;
register int lvl;
str_cat(str," ");
}
+static void
fixtab(str,lvl)
register STR *str;
register int lvl;
tab(str,lvl);
}
+static void
addsemi(str)
register STR *str;
{
str_cat(str,";");
}
+static void
emit_split(str,level)
register STR *str;
int level;
tab(str,level);
}
+int
prewalk(numit,level,node,numericptr)
int numit;
int level;
register int len;
register int type;
register int i;
- char *t;
- char *d, *s;
int numarg;
int numeric = FALSE;
STR *tmpstr;
prewalk(0,level,ops[node+2].ival,&numarg);
prewalk(0,level,ops[node+1].ival,&numarg);
prewalk(0,level,ops[node+3].ival,&numarg);
- if (numarg || strlen(ops[ops[node+1].ival+1].cval) > 1) {
+ if (numarg || strlen(ops[ops[node+1].ival+1].cval) > (Size_t)1) {
numericize(ops[node+2].ival);
if (!numarg)
numericize(ops[node+3].ival);
return 1;
}
+static void
numericize(node)
register int node;
{
register int len;
register int type;
- register int i;
STR *tmpstr;
STR *tmp2str;
int numarg;