单词

递归下降语法分析

烈酒焚心 提交于 2019-12-06 03:23:56
一、实验目的: 利用C语言编制递归下降分析程序,并对简单语言进行语法分析。 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。 二、实验原理 每个非终结符都对应一个子程序。 该子程序根据下一个输入符号(SELECT集)来确定按照哪一个产生式进行处理,再根据该产生式的右端: 每遇到一个终结符,则判断当前读入的单词是否与该终结符相匹配,若匹配,再读取下一个单词继续分析;不匹配,则进行出错处理 每遇到一个非终结符,则调用相应的子程序 三、实验要求说明 输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”,并指出语法错误的类型及位置。 例如: 输入begin a:=9;x:=2*3;b:=a+x end # 输出success 输入x:=a+b*c end # 输出‘end' error 四、实验步骤 1.待分析的语言的语法(参考P90) 2.将其改为文法表示,至少包含 –语句 –条件 –表达式 3. 消除其左递归 4. 提取公共左因子 5. SELECT集计算 6. LL(1)文法判断 7. 递归下降分析程序 各种单词符号对应的种别码 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <> 21 do 5 <= 22 end

实验二 递归下降语法分析

筅森魡賤 提交于 2019-12-06 03:15:30
一、实验目的 利用C语言编制递归下降分析程序,并对简单语言进行语法分析。 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。 二、实验原理 每个非终结符都对应一个子程序。 该子程序根据下一个输入符号(SELECT集)来确定按照哪一个产生式进行处理,再根据该产生式的右端: 每遇到一个终结符,则判断当前读入的单词是否与该终结符相匹配,若匹配,再读取下一个单词继续分析;不匹配,则进行出错处理 每遇到一个非终结符,则调用相应的子程序 三、实验要求说明 输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”,并指出语法错误的类型及位置。 例如: 输入begin a:=9;x:=2*3;b:=a+x end # 输出success 输入x:=a+b*c end # 输出‘end' error 四、实验步骤 1.待分析的语言的语法(参考P90) 2.将其改为文法表示,至少包含 –语句 –条件 –表达式 3. 消除其左递归 4. 提取公共左因子 5. SELECT集计算 6. LL(1)文法判断 7. 递归下降分析程序 一、实验目的 利用C语言编制递归下降分析程序,并对简单语言进行语法分析。 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。 二、实验原理

第十二次作业 递归下降语法分析

拟墨画扇 提交于 2019-12-06 02:51:10
一、实验目的: 利用C语言编制递归下降分析程序,并对简单语言进行语法分析。 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。 二、实验原理 每个非终结符都对应一个子程序。 该子程序根据下一个输入符号(SELECT集)来确定按照哪一个产生式进行处理,再根据该产生式的右端: 每遇到一个终结符,则判断当前读入的单词是否与该终结符相匹配,若匹配,再读取下一个单词继续分析;不匹配,则进行出错处理 每遇到一个非终结符,则调用相应的子程序 三、实验要求说明 输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”,并指出语法错误的类型及位置。 例如: 输入begin a:=9;x:=2*3;b:=a+x end # 输出success 输入x:=a+b*c end # 输出‘end' error 四、实验步骤 1.待分析的语言的语法(参考P90) 2.将其改为文法表示,至少包含 –语句 –条件 –表达式 3. 消除其左递归 4. 提取公共左因子 5. SELECT集计算 6. LL(1)文法判断 7. 递归下降分析程序 源代码: #include<stdio.h> #include<stdlib.h> #include<string.h> char read[800],d[8]; //程序段 单词 char

递归下降语法分析

亡梦爱人 提交于 2019-12-06 02:04:34
一、实验目的: 利用C语言编制递归下降分析程序,并对简单语言进行语法分析。 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。 二、实验原理 每个非终结符都对应一个子程序。 该子程序根据下一个输入符号(SELECT集)来确定按照哪一个产生式进行处理,再根据该产生式的右端: 每遇到一个终结符,则判断当前读入的单词是否与该终结符相匹配,若匹配,再读取下一个单词继续分析;不匹配,则进行出错处理 每遇到一个非终结符,则调用相应的子程序 三、实验要求说明 输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”,并指出语法错误的类型及位置。 例如: 输入begin a:=9;x:=2*3;b:=a+x end # 输出success 输入x:=a+b*c end # 输出‘end' error 四、实验步骤 1.待分析的语言的语法(参考P90) 2.将其改为文法表示,至少包含 –语句 –条件 –表达式 3. 消除其左递归 4. 提取公共左因子 5. SELECT集计算 6. LL(1)文法判断 7. 递归下降分析程序 代码: #include "stdio.h" #include "string.h" char prog[100],token[8],ch; char *rwtab[6]={"begin",

JAVA入门基础知识

自古美人都是妖i 提交于 2019-12-05 19:39:28
“//” 单行注释,当前这一行,不会被java虚拟机执行 包名的取名规则: 包名由多个单词组成,多个单词用英文的.隔开,所有的英文单词全部使用小写字母 第一个单词,推荐代表当前项目所具备的限制性意义或者性质 com 盈利性组织 org 非盈利型组织 cn 中国 edu 教育 第二个单词,推荐注明公司名或者组织名 其他单词,用来描述真实的项目结构 package com.rimi.project.hello; public class Test { // 入口方法,所有的代码必须从main入口方法开始执行,是代码执行的起点,固定写法,先背下来 public static void main(String[] args) { // 标准的输出语句,输出到程序控制台 System.out.println("hello java"); } } 来源: https://www.cnblogs.com/linqian/p/11942064.html

构建之法20191121-2 Final发布

瘦欲@ 提交于 2019-12-05 18:07:01
本作业要求参见 https://edu.cnblogs.com/campus/nenu/2019fall/homework/10062 组长:康哲 组员:付宇泽 都雪冬 齐文华 杨萍 一、操作视频地址 二、可访问地址    微信发现的搜一搜上方搜索“别吃错喽”。即可显示我们的程序,点击进入。            二、git地址 https://e.coding.net/kangzhe/biechicuoleversion.git 三、NABCD对比表格 开题阶段 alpha阶段 beta阶段 fianl阶段 N 1.目前很多学生在记单词方面比较苦恼,学生会在记单词时将单词的释义忘记甚至记错。 2.目前微信小程序上的游戏深受大众的欢迎。 以微信小程序为载体让有需求的人复习单词正确的中文释义。 以微信小程序为载体为学生找出自己记混或记不准的单词。 以微信小程序为载体为学生找出自己记混或记不准的单词。 A 我们会做一个微信小游戏,将单词释义分为正确释义和错误释义,吃到正确释义才能继续游戏。 吃到错误单词1次就会结束游戏 吃到错误单词3次就会结束游戏 吃到错误单词3次就会结束游戏 B 1.学生可以更多的认识到正确的单词释义,避开错误的单词释义。 2.小游戏会使学生在游戏的同时记住更多的英语单词和对应的释义。 1.让用户准确的记忆单词正确的中文意思,避免混淆。 2.避免枯燥的学习,边玩边学

Trie树

拟墨画扇 提交于 2019-12-05 17:45:13
Trie树:用于对字符串进行统计,排序和保存的一种数据结构。每个节点是一个字母(实际代表一个前缀),若这个节点是一个单词的终末,则其前缀构成的字符串就是这个单词。每个节点可以存放该前缀包含的单词个数,该节点是否是一个单词的终末位置。 用法 插入&前缀统计 插入时,每个访问过到的节点num[]++,不用记录是否是一个单词的末尾 //输入字串用s+1,函数调用用s #include <bits/stdc++.h> using namespace std; const int maxn=5e5+5; int T[maxn][26]; int num[maxn]; int tot=1; void add(char *s){ int l=strlen(s+1); int rt=1; for(int i=1;i<=l;i++){ if(T[rt][s[i]-'a']==0){ T[rt][s[i]-'a']=++tot; rt=tot; } else{ rt=T[rt][s[i]-'a']; } num[rt]++; } } int query(char *s){ int l=strlen(s+1); int rt=1; for(int i=1;i<=l;i++){ if(T[rt][s[i]-'a']==0){ return 0; } else rt=T[rt][s[i]-'a']; }

数据结构之第一章 引论 及 课后题答案

谁说胖子不能爱 提交于 2019-12-05 12:45:13
数据结构之第一章 引论 及 课后题答案 写代码许多年,总是觉得浮于表面,不能深入,看大神说研究一下数据结构和算法可以改进不少,所以决定学习一下,课本采用 《数据结构与算法分析:c语言描述》 来学习。 第一章主要是介绍了本书的主旨是为了解决什么问题,并简单以选择问题和填字游戏问题做了简单介绍,初次之外对要用到的数学知识(指数、对数、级数、模运算和证明方法)做了一个简要介绍,不至于在后续的学习过程中因为不懂而懵逼。本文的组织形式如下: 知识点总结—思维导图 课后习题练习 知识点总结 知识点的总结,如下图所示: 简介如下: 选择问题 :在N个数中,选择打印出大小排名为k的数。思路有两个,一是将N个数排序,打印第k个数即可。二是在N个数中,随便取k个数放在数组a中,降序排列,然后遍历剩下的N-k个数,每个数都与a[k-1]比较,如果小于a[k-1]则忽略,如果大于a[k-1],则将这个数插入到a中合适的位置,并把a数组顺延,直到最后,得到的数就是要的数值。更有效的方式,书中将在后续给出,此处不做说明。该问题的代码将在 课后题1 中解答。 找单词 :给出N个单词,和一个二维字符数组,每个二维数组的值都是字符,要求按照二维数组的行、列及对角线的值进行拼接,能够找到这N个单词。书中同样给了两个方法来解决这个问题。一是对单词表中每个单词,检查二维数组的每行、列和对角线,验证单词存在不存在

网格系统container rows 与 columns

心已入冬 提交于 2019-12-05 10:16:38
container rows columns     等分宽 度显示的布局 每一排内容 都可以 是rows   : 一排三列 就可以使 一个row 里面有 三个子 col    添加到短语集 没有此单词集:英语 -> 中文(简体)... 创建新的单词集... 拷贝 添加到短语集 没有此单词集:英语 -> 中文(简体)... 创建新的单词集... 拷贝 添加到短语集 没有此单词集:英语 -> 中文(简体)... 创建新的单词集... 拷贝 添加到短语集 没有此单词集:英语 -> 中文(简体)... 创建新的单词集... 拷贝 添加到短语集 没有此单词集:中文(简体) -> 中文(简体)... 创建新的单词集... 拷贝 添加到短语集 没有此单词集:中文(简体) -> 中文(简体)... 创建新的单词集... 拷贝 来源: https://www.cnblogs.com/apelles/p/11921055.html