From 1ea48b1fcb7ac64935018b1ced2d0f11982872ea Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 24 Nov 2021 20:43:52 +0800 Subject: import(life): Add compile principle experiment 3. --- works/life/compile-principle-experiment/3/main.h | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 works/life/compile-principle-experiment/3/main.h (limited to 'works/life/compile-principle-experiment/3/main.h') diff --git a/works/life/compile-principle-experiment/3/main.h b/works/life/compile-principle-experiment/3/main.h new file mode 100644 index 0000000..9bd6e56 --- /dev/null +++ b/works/life/compile-principle-experiment/3/main.h @@ -0,0 +1,25 @@ +#pragma once + +typedef union SymbolValue { + double val; + double (*ptr)(); +} SymbolValue; + +typedef struct Symbol { + char *name; + int type; + SymbolValue value; + struct Symbol *next; +} Symbol; + +Symbol *cru_symbol_lookup(const char *name); +Symbol *cru_symbol_install(const char *name, int type, SymbolValue value); + +double Pow(double x, double y); + +int yylex(); +int yyparse(); +void yyerror(const char *s); + +extern int lineno; +void execerror(const char *s, const char *t); -- cgit v1.2.3