#include #include #include "lex.h" #include "parser.h" int main(int argc, char *argv[]) { struct lexer *lex; struct expr_node *node; if (argc < 2) { printf("Usage: %s \n", argv[0]); return 1; } /* //struct lexer *lex = lex_create("x* sin (x ^ 2) * 5.5e+2* cosh (x )"); //struct lexer *lex = lex_create("-1 + -2 - 3 + 4"); */ lex = lex_create(argv[1]); node = parse_expression(lex); lex_free(lex); if (node) { double x; node_debug_print(node); printf("polygon("); for (x = -10.0; x < 10.0; x += 0.1) { printf("(%.2f,%.2f),", x, node_eval(node, x)); } printf("(10, -1000),(-10,-1000))\n"); } node_free(node); return 0; }