三个文件夹,分别表示使用Python手工编写解释器前端后端代码
、使用FLEX生成词法分析器,BISON生成语法分析器
、使用ANTLR编写前端后端代码,编写监听者遍历器完成语义动作
。
函数绘图语言支持的语句包含四类,分别是:
-
循环绘图语句 FOR-DRAW
语法:
FOR T FROM 起点 TO 终点 STEP 步长 DRAW(横坐标,纵坐标);
语义:令T从起点到终点,每次改变一个步长,绘制出由(横坐标,纵坐标)所规定的点的轨迹。其中横纵坐标可以为复杂函数。
举例:
FOR T FROM 0 TO 2*PI STEP PI/50 DRAW(COS(T),SIN(T));
说明:绘制一个原点在(0,0)的单位圆
-
比例设置语句 SCALE
语法:
SCALE IS (横坐标比例因子,纵坐标比例因子);
语义:设置横纵坐标的比例,并分别按照比例因子进行变化。
举例:
SCALE IS (100,100);
说明:将横纵坐标的比例设置为1:1,并且放大100倍。
-
坐标平移语句 ORIGIN
语法:
ORIGIN IS (横坐标,纵坐标);
语义:将坐标系的原点平移到横坐标和纵坐标规定的点处。
举例:
ORIGIN IS (360,240);
说明:将原点从(0,0)平移到(360,240)处。
-
角度旋转语句 ROT
语法:
ROT IS 角度;
语义:逆时针旋转角度所规定的弧度值。
举例:
ROT IS PI/2;
说明:逆时针旋转
PI/2
,即逆时针旋转90度。
输入文本
for t from 0 to 2*pi step pi/50 draw(16*(sin(t))**3,13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t));
for t from 0 to pi*20 step Pi/50 draw(70*(((1-1/(10/7))*Cos(T)+1/(10/7)*Cos(-T*((10/7))))), 70*((1-1/(10/7))*Sin(T)+1/(10/7)*Sin(T*((10/7)))));
输出结果