编译原理课程设计报告c-语言词法与语法分析器的实现(编辑修改稿)内容摘要:
p = newStmtNode(AssignK)。 p = t。 match(token)。 pchild[0] = expression()。 t = p。 } if (token == LPAREN ) { TreeNode * p = newStmtNode(CallK)。 p = t。 t=p。 match(token)。 pchild[0] = args()。 match(RPAREN)。 } break。 case LPAREN : match(LPAREN)。 t = expression()。 match(RPAREN)。 break。 default: syntaxError(unexpected token )。 printToken(token,tokenString)。 token = getToken()。 break。 } return t。 } TreeNode * args(void) { TreeNode * t = newStmtNode(ArgList)。 if(token != RPAREN) { tchild[0] = arg_list()。 return t。 }else return NULL。 } TreeNode * arg_list(void) { TreeNode * t = newStmtNode(ArgK)。 int i = 1。 if(token != RPAREN) tchild[0] = expression()。 while(token!=RPAREN) { match(DOT)。 tchild[i] = expression()。 i++。 } return t。 } TreeNode * parse(void) { TreeNode * t。 token = getToken()。 t =declaration_list()。 if (token!=ENDFILE) syntaxError(Code ends before file\n)。 return t。 } include include include /*对扫描的字符进行匹配判断 */ TokenType getToken(void) { /* index for storing into tokenString */ int tokenStringIndex = 0。 /* holds current token to be returned */ TokenType currentToken。 /* current state always begins at START */ StateType state = START。 /* flag to indicate save to tokenString */ int save。 while (state != DONE) { int c = getNextChar()。 save = TRUE。 switch (state) { case START: if (isdigit(c)) state = INNUM。 else if (isalpha(c)) state = INID。 else if (c == 39。 =39。 ) state = INEQUAL。 else if (c == 39。 39。 ) state = INLE。 else if (c == 39。 39。 ) state = INME。 else if ((c == 39。 39。 ) || (c == 39。 \t39。 ) || (c == 39。 \n39。 )) save = FALSE。 else if (c== 39。 !39。 ) state = INNEQ。 else if (c == 39。 /39。 ) { if(getNextChar()!=39。 *39。 ) { ungetNextChar()。 state = DONE。 currentToken = OVER。 break。 } else { save = FALSE。 state = INCOMMENT。 } } else { state = DONE。 switch (c) { case EOF: save = FALSE。 currentToken = ENDFILE。 break。 case 39。 +39。 : currentToken = PLUS。 break。 case 39。 39。 : currentToken = MINUS。 break。 case 39。 *39。 : currentToken = TIMES。 break。 case 39。 (39。 : currentToken = LPAREN。 break。 case 39。 )39。 : currentToken = RPAREN。 break。 case 39。 39。 : currentToken = SEMI。 break。 case 39。 [39。 : currentToken=LZKH。 break。 case 39。 ]39。 : currentToken=RZKH。 break。 case 39。 {39。 : currentToken=LDKH。 break。 case 39。 }39。 : currentToken=RDKH。 break。 case 39。 ,39。 : currentToken=DOT。 break。 default: currentToken = ERROR。 break。 } } break。 case INCOMMENT: save = FALSE。 if (c == EOF) { state = DONE。 currentToken = ERROR。 } else if(c==39。 *39。 ) { if(getNextChar()==39。 /39。 ) { state = START。 } else { ungetNextChar()。 } } break。 case INNEQ: state=DONE。 if(c==39。 =39。 ) currentToken=NEQ。 else { ungetNextChar()。 save=FALSE。 currentToken=ERROR。 } break。 case INEQUAL: state = DONE。 if (c == 39。 =39。 ) currentToken = EQ。 else { /* backup in the input */ ungetNextChar()。 currentToken = ASSIGN。 } break。 case INNUM: if (!isdigit(c)) { /* backup in the input */ ungetNextChar()。 save = FALSE。 state = DONE。 currentToken = NUM。 } break。 case INID: if (!isalpha(c)) { /* backup in the input */ ungetNextChar()。 save = FALSE。 state = DONE。 currentToken = ID。 } break。 case INLE: state = DONE。 if(c== 39。 =39。 ) currentTok。编译原理课程设计报告c-语言词法与语法分析器的实现(编辑修改稿)
相关推荐
CartItemBean cartItem=(CartItemBean)()。 BookBean book=()。 int bookId=()。 String fieldNum=num_+i。 String fieldBook=book_+i。 % tr td%=() %/td td%=() %/td td input type=text name=%=fieldNum% value=%=()
健的增长。 虽然我国互联网渗透速度有所放缓,但渗透动力依然强劲,加速互联网普及水平较低的人群转化;现在我国居民收入和购买能力的不断提升,网上用户的消费潜力还将继续攀升;随着电商企业的发展,网上购物供给能力还将逐步增长,服务水平将持续提高,这些都将有力地创造进一步的提升空间,推动网上购物在将来较长时间实现较为稳步的增长。 制约网上购物用户增长的主要因素是互联网普及水平
提交项目信息 管理投票项目 删除投票项目 管理选项 添加 更新 客户 是 否 还有选项 删除 没有 5 系统详细设计 12 5 详细设计 系统功能结构图 系统总体结构如图 51 所示: 图 51 网上投票系统功能结构图 注册登陆模块详细设计 (1) 注册登录模块功能设计 管理员和客户登陆界面;根据身份从而跳入相应的页面,实现注册登陆功能。 输入 处理 输出 图 52 注册登陆页面管理员流程图
国外贸出口总额的 4/5。 这表明我国出口市场主要集中在发达国家和部分新兴工业化国家和地区。 这些国家多数都是世界贸易组织与环境委员会的成员,环保行动起步早,成效大,公众环保意识强,环保技术位居世界前列,目前从环保立法进入了环保执法阶段。 如果这些国家和地区凭借自身在环保方面的优势,在世界贸易组织中极力要求将贸易与环境两者紧密挂钩,并制定对发展中国家过于苛刻的统一环境标准
l类实现留言版模块的增、删、改、查 * @version * @author cy * */ 1 23 public class GoodsCtrl { DBConn db=null。 Connection conn=null。 ResultSet rs=null。 PreparedStatement pstat=null。 /** * 此方法实现查询所有留言信息,并返回查询结果 *
更有购买价值之后,那么就应该在购物车里面添加一个单本删除已选图书或几本图书的删除功能。 在购物车功能前台页面代码开发的时候,本人对页面的跳转做了以下的设定。 首先在进入书本详细介绍页面的时候,在次页面下添加了选择购书数量的功能,在点击“购买”后,页面返回 到主页面,在再次进入到购物车页面后,购物车页面显示了刚才选中图书的详细情况,并且在此有删除该本图书的功能,在点击“提交”后