当前位置: 首页 > wzjs >正文

网站开发用户名不存在简单的装x编程代码

网站开发用户名不存在,简单的装x编程代码,如何利用fortran语言建设网站,常州网站建设多少钱文章目录 具体的实现结果图 首先回顾项目架构 -MAIN.C 主程序 -GLOBALS.H 全局类型及变量(如Token类属及语法树结点的组成) -UTIL.H、UTIL.C 各步骤的实用函数。如输出Token,生成语法树结点等 -SCAN.C、SCAN.H 词法分析程序及其头文件 -…

文章目录

    • 具体的实现
    • 结果图

在这里插入图片描述

首先回顾项目架构

-MAIN.C  主程序
-GLOBALS.H  全局类型及变量(如Token类属及语法树结点的组成)
-UTIL.H、UTIL.C  各步骤的实用函数。如输出Token,生成语法树结点等
-SCAN.C、SCAN.H  词法分析程序及其头文件
-PARSE.C、PARSE.H  语法分析程序及其头文件
-ANALYZE.C、ANALYZE.H  语义检查程序及其头文件
-SYMTAB.C、SYMTAB.H  符号表生成程序及其头文件
-CGEN.H、CGEN.C、CODE.C、CODE.H  目标代码生成程序及其头文件
-TM  编译sample.tny源程序后得到目标代码,在该虚拟机上运行得到结果

明确任务

  • 本次实现完成的是语法分析

在这里插入图片描述

  • parse.c文件
typedef enum {StmtK,ExpK} NodeKind;
typedef enum {IfK,RepeatK,AssignK,ReadK,WriteK} StmtKind;
typedef enum {OpK,ConstK,IdK} ExpKind;typedef enum {Void,Integer,Boolean} ExpType;#define MAXCHILDREN 3typedef struct treeNode{ struct treeNode * child[MAXCHILDREN];struct treeNode * sibling;int lineno;NodeKind nodekind;union { StmtKind stmt; ExpKind exp;} kind;union { TokenType op;int val;char * name; } attr;ExpType type; } TreeNode;/****************************************************/
/* File: parse.c                                        */
/* The parser implementation for the TINY compiler          */
/****************************************************/#include "globals.h"
#include "util.h"
#include "scan.h"
#include "parse.h"static TokenType token; /* holds current token *//* function prototypes for recursive calls */
static TreeNode * stmt_sequence(void);
static TreeNode * statement(void);
static TreeNode * if_stmt(void);
static TreeNode * repeat_stmt(void);
static TreeNode * assign_stmt(void);
static TreeNode * read_stmt(void);
static TreeNode * write_stmt(void);
static TreeNode * exp(void);
static TreeNode * simple_exp(void);
static TreeNode * term(void);
static TreeNode * factor(void);static void syntaxError(char * message)
{ fprintf(listing,"\n>>> ");fprintf(listing,"Syntax error at line %d: %s",lineno,message);Error = TRUE;
}static void match(TokenType expected)
{ if (token == expected) token = getToken();else {syntaxError("unexpected token -> ");printToken(token,tokenString);fprintf(listing,"      ");}
}TreeNode * stmt_sequence(void)
{ TreeNode * t = statement();TreeNode * p = t;while ((token!=ENDFILE) && (token!=END) &&(token!=ELSE) && (token!=UNTIL)){ TreeNode * q;match(SEMI);q = statement();if (q!=NULL) {if (t==NULL) t = p = q;else /* now p cannot be NULL either */{ p->sibling = q;p = q;}}}return t;
}TreeNode * statement(void)
{ TreeNode * t = NULL;switch (token) {case IF : t = if_stmt(); break;case REPEAT : t = repeat_stmt(); break;case ID : t = assign_stmt(); break;case READ : t = read_stmt(); break;case WRITE : t = write_stmt(); break;default : syntaxError("unexpected token -> ");printToken(token,tokenString);token = getToken();break;} /* end case */return t;
}TreeNode * if_stmt(void)
{          ……          //此处请自己填写
}TreeNode * repeat_stmt(void)
{……          //此处请自己填写
}TreeNode * assign_stmt(void)
{ ……          //此处请自己填写
}TreeNode * read_stmt(void)
{……          //此处请自己填写
}TreeNode * write_stmt(void)
{……          //此处请自己填写
}TreeNode * exp(void)
{ TreeNode * t = simple_exp();if ((token==LT)||(token==EQ)) {TreeNode * p = newExpNode(OpK);if (p!=NULL) {p->child[0] = t;p->attr.op = token;t = p;}match(token);if (t!=NULL)t->child[1] = simple_exp();}return t;
}TreeNode * simple_exp(void)
{……          //此处请自己填写
}TreeNode * term(void)
{……          //此处请自己填写
}TreeNode * factor(void)
{……          //此处请自己填写
}/****************************************/
/* the primary function of the parser   */
/****************************************/
/* Function parse returns the newly * constructed syntax tree*/
TreeNode * parse(void)
{ TreeNode * t;token = getToken();t = stmt_sequence();if (token!=ENDFILE)syntaxError("Code ends before file\n");return t;
}

具体的实现

  • 完善这个parse.c文件:直接把parse.c和要求丢给ai即可
要求:填写各语法符号的递归下降子程序,完成语法分析器parse.c。
约定:
-用递归下降分析法,为每个语法符号编写子程序。进入每个子程序前已读入一个新Token。
-一个语法结构的内部表示形式为语法树,数据结构是globals.h中的treeNode。在做语法分析的同时建立语法结构的内部表示——语法树。
  • 生成完成之后,修改main.c中的参数设置
/* set NO_PARSE to TRUE to get a scanner-only compiler */
#define NO_PARSE FALSE
/* set NO_ANALYZE to TRUE to get a parser-only compiler */
#define NO_ANALYZE TRUE/* set NO_CODE to TRUE to get a compiler that does not* generate code*/
#define NO_CODE TRUE
  • 还有下面的参数
/* allocate and set tracing flags */
int EchoSource = FALSE;
int TraceScan = FALSE;
int TraceParse = TRUE;
int TraceAnalyze = FALSE;
int TraceCode = FALSE;
int Error = FALSE;
  • 接着就可以测试语法分析,xxxxx替换为编译之后的文件名,自己取
gcc main.c util.c scan.c parse.c -o xxxxx
  • 测试,xxxxx是上面编译之后的程序,SAMPLE.TNY是文件夹里面本身就有的测试文件
./xxxxx SAMPLE.TNY 

结果图

在这里插入图片描述


文章转载自:

http://yzTt805K.ndnhf.cn
http://wTTCtc0R.ndnhf.cn
http://IfEeTZPg.ndnhf.cn
http://G6QdsTbW.ndnhf.cn
http://UhoO8cjX.ndnhf.cn
http://O3ZwA9By.ndnhf.cn
http://Cv4ohrpn.ndnhf.cn
http://6NiZApNU.ndnhf.cn
http://jvMrrbHh.ndnhf.cn
http://xHVS4x4X.ndnhf.cn
http://CxV19Mqf.ndnhf.cn
http://nRd07irw.ndnhf.cn
http://GVDvuV2k.ndnhf.cn
http://ysDQ4yHd.ndnhf.cn
http://BVH3D9pS.ndnhf.cn
http://puSjXs5S.ndnhf.cn
http://mg1QiOXz.ndnhf.cn
http://ZzfRPoRT.ndnhf.cn
http://Tgez73mb.ndnhf.cn
http://cXvfLRn8.ndnhf.cn
http://xLr2fRUf.ndnhf.cn
http://7bA5tbfC.ndnhf.cn
http://78yoL9sL.ndnhf.cn
http://DTvH3kyW.ndnhf.cn
http://MbyJ0yV7.ndnhf.cn
http://pAWuIujX.ndnhf.cn
http://z945CqtO.ndnhf.cn
http://87TqhqKb.ndnhf.cn
http://UsnKdv98.ndnhf.cn
http://PthDaymI.ndnhf.cn
http://www.dtcms.com/wzjs/774774.html

相关文章:

  • 设计的商城网站建设asp网站 会员注册
  • 南京网站制作公司怎么样网站logo
  • 网站开发英文参考文献2015年后外贸网站特效
  • 青海西宁制作网站企业帝国做视频网站
  • 招商网站建设哪家好室内设计效果图在哪里找
  • 代理服务网站万网域名证书
  • 新人怎么自己做网站学校网站的建设
  • 箱包网站模板seo公司培训
  • 怎么做网站反向链接北京seo网站设计
  • 学校机构网站建设内容h5开发网站优点
  • 小说网站开发背景网页建站怎么做
  • 如何给自己的公司做网站简洁文章类网站
  • 专门做二手书网站或app五 网站开发总体进度安排
  • 网站的设计方法有哪些市场营销策略名词解释
  • 成都电子商城网站开发wordpress登录页面修改
  • 网站手机版建设网站域名备案在阿里云怎么做
  • 中文的网站做不成二维码wordpress迁移typecho
  • 公司和公司网站的关系wordpress局部内容
  • 瑞金网站建设推广做网站大概需要多少费用
  • 网站制作如皋定制微信怎么做
  • 英德市住房城乡建设网站上海手机网站哪家最好
  • 国内做的比较好的旅游网站建设黑彩网站需要什么
  • 一个备案号可以放几个网站平面设计作品集欣赏
  • cnzz统计代码放在网站南海网站建设哪家好
  • 网站建设放在什么科目电子商务网站开发目标
  • 中国建设企业银行网站首页wordpress修改个人头像
  • 张家界网站建设企业wordpress 在线留言
  • 网站分类 维护济南最新消息今天
  • 新增网站惠州市建设局网站
  • 深圳做网站排名公司哪家好北京网站建设销售招聘