ic.y
来自「这是一个软件水平资格考试中使用的CASL汇编语言的编译器,实现文件中包括一个编译」· Y 代码 · 共 62 行
Y
62 行
%{
#include <math.h>
#include <malloc.h>
#include <stdlib.h>
%}
%token DECIMAL
%token HEX
%token LABEL
%token VAR
%token START
%token END
%token JMP
%token IF
%token GOTO
%left '+''-'
%%
PROGRAM: START BODY END {printf("Input Ok!\n");};
BODY: BODY STMT | STMT
STMT: ASSIGNSTMT | IFSTMT | JMPSTMT
ASSIGNSTMT: LBLSTMT VAR '=' EXPR
IFSTMT: LBLSTMT IF CONDEXPR GOTO VAR
JMPSTMT: LBLSTMT JMP VAR
EXPR: DECIMAL |
VAR |
EXPR '+' EXPR |
EXPR '-' EXPR
CONDEXPR: EXPR '>' EXPR |
EXPR '<' EXPR
LBLSTMT: LABEL |
%%
#include "Lex.yy.c"
int yyerror(char *s)
{
printf("%s\n",s); return;
}
int main()
{
FILE * fp;
fp = fopen("test.ic", "r");
if (NULL != fp)
{
yyin = fp;
}
else
{
yyin = stdin;
}
yyparse();
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?