高级计算器:从简单到复杂的编程之旅
1. 高级计算器概述
高级计算器是一个小型但较为实用的编译器扩展。它在原计算器的基础上,增加了命名变量和赋值、比较表达式(如大于、小于、等于等)、 if/then/else 和 while/do 流程控制、内置和用户定义函数,以及简单的错误恢复功能。
例如,定义一个用户函数并调用它,同时使用内置函数作为参数:
> let avg(a,b) = (a+b)/2;
Defined avg
> avg(3, sqrt(25))
= 4
2. 代码声明
首先是头文件 fb3-2.h 的声明,它包含了计算器所需的各种结构体和函数声明。
/*
* Declarations for a calculator fb3-1
*/
/* interface to the lexer */
extern int yylineno; /* from lexer */
void yyerror(char *s, ...);
/* symbol table */
struct symbol { /* a variable name */
char *name;
double value;
struct ast *func; /* stmt for the function */
struct symlist *syms; /
超级会员免费看
订阅专栏 解锁全文
972

被折叠的 条评论
为什么被折叠?



