资 源 简 介
```
fg: Functional Grapher
fgc: fg Compiler
fge: fg Excuter
Copyleft (C) 2009, Felicia & Eire.
fg Grammer (Bison compatible)
fg语法就是简化的c语法
运算符除了&(取地址) *(指针) .(成员) sizeof ,(逗号) ?:(if-else) 以外, 其他都和c是一样的
数据类型有 void int float, 变量不能是 void, 但是函数可以是 void 型
目前不支持定义变量的时候初始化, 需要手动初始化
关键字有 int float void if else while for continue break return
关键字含义和c的是一样的
循环有 while 循环和 for 循环, 没有 do while 循环
while (表达式) 语句
for (表达式1; 表达式2; 表达式3) 语句
语句可以是表达式跟上分号构成, 或者是选择语句或者是循环语句, 也可以是 {} 包围的语句序列, 跟c是一样的
函数可以递归, 可以声明函数(因此可以写两个函数互相调用), 函数定义的时候必须和声明是一致的
函数的形参只能是int, float型的, 不能是数组
程序入口是 main 函数, 必须写成
void main() {
...
}
void 函数没有返回值, 不能在函数里面写 return x; 这样的语句, 可以写 return;
int 或 float 类型的函数如果没有 return x; 这样的语句, 会造成返回不可预料的值
main 函数必须调用size(w,h)来设置显示窗口的大小
//TODO 下面的语法文件不是最新的
%token IDENTIFIER
%token CONSTANT
%token MULASSIGN DIVASSIGN MODASSIGN ADDASSIGN SUBASSIGN LEFTASSIGN RIGHTASSIGN ANDASSIGN XOR