Checkpoint.

This commit is contained in:
wkj 2004-05-16 07:57:50 +00:00
parent 5f1cf8e6fb
commit b237df90f9
19 changed files with 324 additions and 283 deletions

View file

@ -9,163 +9,163 @@ struct keyword {
char *key;
int keyval;
} keyword[] ={
"sub", SUB,
"sup", SUP,
".EN", DOTEN,
".EQ", DOTEQ,
"from", FROM,
"to", TO,
"sum", SUM,
"hat", HAT,
"vec", VEC,
"dyad", DYAD,
"dot", DOT,
"dotdot", DOTDOT,
"bar", BAR,
"lowbar", LOWBAR,
"highbar", HIGHBAR,
"tilde", TILDE,
"utilde", UTILDE,
"under", UNDER,
"prod", PROD,
"int", INT,
"integral", INT,
"union", UNION,
"inter", INTER,
"matrix", MATRIX,
"col", COL,
"lcol", LCOL,
"ccol", CCOL,
"rcol", RCOL,
"pile", COL, /* synonyms ... */
"lpile", LCOL,
"cpile", CCOL,
"rpile", RCOL,
"over", OVER,
"sqrt", SQRT,
"above", ABOVE,
"size", SIZE,
"font", FONT,
"fat", FAT,
"roman", ROMAN,
"italic", ITALIC,
"bold", BOLD,
"left", LEFT,
"right", RIGHT,
"delim", DELIM,
"define", DEFINE,
"tdefine", DEFINE,
"ndefine", NDEFINE,
"ifdef", IFDEF,
"gsize", GSIZE,
".gsize", GSIZE,
"gfont", GFONT,
"include", INCLUDE,
"copy", INCLUDE,
"space", SPACE,
"up", UP,
"down", DOWN,
"fwd", FWD,
"back", BACK,
"mark", MARK,
"lineup", LINEUP,
0, 0
{ "sub", SUB, },
{ "sup", SUP, },
{ ".EN", DOTEN, },
{ ".EQ", DOTEQ, },
{ "from", FROM, },
{ "to", TO, },
{ "sum", SUM, },
{ "hat", HAT, },
{ "vec", VEC, },
{ "dyad", DYAD, },
{ "dot", DOT, },
{ "dotdot", DOTDOT, },
{ "bar", BAR, },
{ "lowbar", LOWBAR, },
{ "highbar", HIGHBAR, },
{ "tilde", TILDE, },
{ "utilde", UTILDE, },
{ "under", UNDER, },
{ "prod", PROD, },
{ "int", INT, },
{ "integral", INT, },
{ "union", UNION, },
{ "inter", INTER, },
{ "matrix", MATRIX, },
{ "col", COL, },
{ "lcol", LCOL, },
{ "ccol", CCOL, },
{ "rcol", RCOL, },
{ "pile", COL }, /* synonyms ... */
{ "lpile", LCOL, },
{ "cpile", CCOL, },
{ "rpile", RCOL, },
{ "over", OVER, },
{ "sqrt", SQRT, },
{ "above", ABOVE, },
{ "size", SIZE, },
{ "font", FONT, },
{ "fat", FAT, },
{ "roman", ROMAN, },
{ "italic", ITALIC, },
{ "bold", BOLD, },
{ "left", LEFT, },
{ "right", RIGHT, },
{ "delim", DELIM, },
{ "define", DEFINE, },
{ "tdefine", DEFINE, },
{ "ndefine", NDEFINE, },
{ "ifdef", IFDEF, },
{ "gsize", GSIZE, },
{ ".gsize", GSIZE, },
{ "gfont", GFONT, },
{ "include", INCLUDE, },
{ "copy", INCLUDE, },
{ "space", SPACE, },
{ "up", UP, },
{ "down", DOWN, },
{ "fwd", FWD, },
{ "back", BACK, },
{ "mark", MARK, },
{ "lineup", LINEUP, },
{ 0, 0 }
};
struct resword {
char *res;
char *resval;
} resword[] ={
">=", "\\(>=",
"<=", "\\(<=",
"==", "\\(==",
"!=", "\\(!=",
"+-", "\\(+-",
"->", "\\(->",
"<-", "\\(<-",
"inf", "\\(if",
"infinity", "\\(if",
"partial", "\\(pd",
"half", "\\f1\\(12\\fP",
"prime", "\\f1\\v'.5m'\\s+3\\(fm\\s-3\\v'-.5m'\\fP",
"dollar", "\\f1$\\fP",
"nothing", "",
"times", "\\(mu",
"del", "\\(gr",
"grad", "\\(gr",
"approx", "\\v'-.2m'\\z\\(ap\\v'.25m'\\(ap\\v'-.05m'",
"cdot", "\\v'-.3m'.\\v'.3m'",
"...", "\\v'-.25m'\\ .\\ .\\ .\\ \\v'.25m'",
",...,", "\\f1,\\fP\\ .\\ .\\ .\\ \\f1,\\fP\\|",
"alpha", "α",
"ALPHA", "Α",
"beta", "β",
"BETA", "Β",
"gamma", "γ",
"GAMMA", "Γ",
"delta", "δ",
"DELTA", "Δ",
"epsilon", "ε",
"EPSILON", "Ε",
"omega", "ω",
"OMEGA", "Ω",
"lambda", "λ",
"LAMBDA", "Λ",
"mu", "μ",
"MU", "Μ",
"nu", "ν",
"NU", "Ν",
"theta", "θ",
"THETA", "Θ",
"phi", "φ",
"PHI", "Φ",
"pi", "π",
"PI", "Π",
"sigma", "σ",
"SIGMA", "Σ",
"xi", "ξ",
"XI", "Ξ",
"zeta", "ζ",
"ZETA", "Ζ",
"iota", "ι",
"IOTA", "Ι",
"eta", "η",
"ETA", "Η",
"kappa", "κ",
"KAPPA", "Κ",
"rho", "ρ",
"RHO", "Ρ",
"tau", "τ",
"TAU", "Τ",
"omicron", "ο",
"OMICRON", "Ο",
"upsilon", "υ",
"UPSILON", "Υ",
"psi", "ψ",
"PSI", "Ψ",
"chi", "χ",
"CHI", "Χ",
"and", "\\f1and\\fP",
"for", "\\f1for\\fP",
"if", "\\f1if\\fP",
"Re", "\\f1Re\\fP",
"Im", "\\f1Im\\fP",
"sin", "\\f1sin\\fP",
"cos", "\\f1cos\\fP",
"tan", "\\f1tan\\fP",
"arc", "\\f1arc\\fP",
"sinh", "\\f1sinh\\fP",
"coth", "\\f1coth\\fP",
"tanh", "\\f1tanh\\fP",
"cosh", "\\f1cosh\\fP",
"lim", "\\f1lim\\fP",
"log", "\\f1log\\fP",
"ln", "\\f1ln\\fP",
"max", "\\f1max\\fP",
"min", "\\f1min\\fP",
"exp", "\\f1exp\\fP",
"det", "\\f1det\\fP",
0, 0
{ ">=", "\\(>=", },
{ "<=", "\\(<=", },
{ "==", "\\(==", },
{ "!=", "\\(!=", },
{ "+-", "\\(+-", },
{ "->", "\\(->", },
{ "<-", "\\(<-", },
{ "inf", "\\(if", },
{ "infinity", "\\(if", },
{ "partial", "\\(pd", },
{ "half", "\\f1\\(12\\fP", },
{ "prime", "\\f1\\v'.5m'\\s+3\\(fm\\s-3\\v'-.5m'\\fP", },
{ "dollar", "\\f1$\\fP", },
{ "nothing", "", },
{ "times", "\\(mu", },
{ "del", "\\(gr", },
{ "grad", "\\(gr", },
{ "approx", "\\v'-.2m'\\z\\(ap\\v'.25m'\\(ap\\v'-.05m'", },
{ "cdot", "\\v'-.3m'.\\v'.3m'", },
{ "...", "\\v'-.25m'\\ .\\ .\\ .\\ \\v'.25m'", },
{ ",...,", "\\f1,\\fP\\ .\\ .\\ .\\ \\f1,\\fP\\|", },
{ "alpha", "α", },
{ "ALPHA", "Α", },
{ "beta", "β", },
{ "BETA", "Β", },
{ "gamma", "γ", },
{ "GAMMA", "Γ", },
{ "delta", "δ", },
{ "DELTA", "Δ", },
{ "epsilon", "ε", },
{ "EPSILON", "Ε", },
{ "omega", "ω", },
{ "OMEGA", "Ω", },
{ "lambda", "λ", },
{ "LAMBDA", "Λ", },
{ "mu", "μ", },
{ "MU", "Μ", },
{ "nu", "ν", },
{ "NU", "Ν", },
{ "theta", "θ", },
{ "THETA", "Θ", },
{ "phi", "φ", },
{ "PHI", "Φ", },
{ "pi", "π", },
{ "PI", "Π", },
{ "sigma", "σ", },
{ "SIGMA", "Σ", },
{ "xi", "ξ", },
{ "XI", "Ξ", },
{ "zeta", "ζ", },
{ "ZETA", "Ζ", },
{ "iota", "ι", },
{ "IOTA", "Ι", },
{ "eta", "η", },
{ "ETA", "Η", },
{ "kappa", "κ", },
{ "KAPPA", "Κ", },
{ "rho", "ρ", },
{ "RHO", "Ρ", },
{ "tau", "τ", },
{ "TAU", "Τ", },
{ "omicron", "ο", },
{ "OMICRON", "Ο", },
{ "upsilon", "υ", },
{ "UPSILON", "Υ", },
{ "psi", "ψ", },
{ "PSI", "Ψ", },
{ "chi", "χ", },
{ "CHI", "Χ", },
{ "and", "\\f1and\\fP", },
{ "for", "\\f1for\\fP", },
{ "if", "\\f1if\\fP", },
{ "Re", "\\f1Re\\fP", },
{ "Im", "\\f1Im\\fP", },
{ "sin", "\\f1sin\\fP", },
{ "cos", "\\f1cos\\fP", },
{ "tan", "\\f1tan\\fP", },
{ "arc", "\\f1arc\\fP", },
{ "sinh", "\\f1sinh\\fP", },
{ "coth", "\\f1coth\\fP", },
{ "tanh", "\\f1tanh\\fP", },
{ "cosh", "\\f1cosh\\fP", },
{ "lim", "\\f1lim\\fP", },
{ "log", "\\f1log\\fP", },
{ "ln", "\\f1ln\\fP", },
{ "max", "\\f1max\\fP", },
{ "min", "\\f1min\\fP", },
{ "exp", "\\f1exp\\fP", },
{ "det", "\\f1det\\fP", },
{ 0, 0 }
};
int hash(char *s)