单词

词法分析程序的设计与实现

旧巷老猫 提交于 2019-12-01 05:03:06
词法分析程序( Lexical Analyzer )要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词( Lexemes ) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: –遍历(什么遍历方式) –词法规则 输出:单词流(什么输出形式) –二元组 单词类别: 1.标识符(10) 2.无符号数(11) 3.保留字(一词一码) 4.运算符(一词一码) 5.界符(一词一码) 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <= 21 do 5 <> 22 end 6 > 23 l(l|d)* 10 >= 24 dd* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0  源代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 100 int p=0,syn,n,i; char prog[SIZE],ch,token[8]; char *keyword[6]={"begin","then","if","while","do","end"}; void

第五次作业

孤人 提交于 2019-12-01 05:02:51
此程序要逐个检查运行情况,并能当场补全代码。 词法分析程序( Lexical Analyzer )要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词( Lexemes ) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: –遍历(什么遍历方式) –词法规则 输出:单词流(什么输出形式) –二元组 单词类别: 1.标识符(10) 2.无符号数(11) 3.保留字(一词一码) 4.运算符(一词一码) 5.界符(一词一码) 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <= 21 do 5 <> 22 end 6 > 23 l(l|d)* 10 >= 24 dd* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0 代码部分: #include<stdio.h> #include<string.h> #include<stdlib.h> char prog[80],word[8],ch; char *tag[6]={"begin","if","then","while","do","end"}; int syn,i,j,p,sum,row,y;

说反话

三世轮回 提交于 2019-12-01 05:02:50
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。 输出格式: 每个测试用例的输出占一行,输出倒序后的句子。 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello 1 #include<iostream> 2 #include<sstream> 3 #include<string> 4 #include<stack> 5 using namespace std; 6 int main(){ 7 string stri; 8 string word; 9 stack<string> st; 10 getline(cin,stri); 11 istringstream line(stri); 12 while(line>>word){ 13 st.push(word); 14 } 15 cout<<st.top(); 16 st.pop(); 17 while(!st.empty()){ 18 cout<<" "<<st.top(); 19 st.pop(); 20 } 21 return

第五次作业,词法分析程序设计与实践

人盡茶涼 提交于 2019-12-01 05:02:42
词法分析程序( Lexical Analyzer )要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词( Lexemes ) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: – 遍历(什么遍历方式) – 词法规则 输出:单词流(什么输出形式) – 二元组 单词类别: 1. 标识符( 10 ) 2. 无符号数( 11 ) 3. 保留字(一词一码) 4. 运算符(一词一码) 5. 界符(一词一码) 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <= 21 do 5 <> 22 end 6 > 23 l(l|d)* 10 >= 24 dd* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0  代码如下: #include <cstdio> #include <cstring> #include <iostream> using namespace std; char ch; char arr1[100], arr2[15],arr3[15];//arr1 输入, arr2 输出 int syn, row, sum ; //syn 为单词种别码

词法分析程序的设计与实现

被刻印的时光 ゝ 提交于 2019-12-01 05:01:55
词法分析程序( Lexical Analyzer )要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词( Lexemes ) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: –遍历(什么遍历方式) –词法规则 输出:单词流(什么输出形式) –二元组 单词类别: 1.标识符(10) 2.无符号数(11) 3.保留字(一词一码) 4.运算符(一词一码) 5.界符(一词一码) 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <= 21 do 5 <> 22 end 6 > 23 l(l|d)* 10 >= 24 dd* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0  case '-': syn=14;token[0]=ch; break; case '*': syn=15;token[0]=ch; break; case '/': syn=16;token[0]=ch; break; case ':': syn=17;token[0]=ch; break; case ':=': syn=18;token[0]=ch; break; case

词法分析程序

萝らか妹 提交于 2019-12-01 05:01:52
词法分析程序( Lexical Analyzer )要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词( Lexemes ) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: –遍历(什么遍历方式) –词法规则 输出:单词流(什么输出形式) –二元组 单词类别: 1.标识符(10) 2.无符号数(11) 3.保留字(一词一码) 4.运算符(一词一码) 5.界符(一词一码) 待续。。。 来源: https://www.cnblogs.com/maoweizhao/p/11656764.html

编译原理:词法分析程序的设计与实现

谁说我不能喝 提交于 2019-12-01 05:01:16
词法分析程序( Lexical Analyzer )要求: 从左至右扫描构成源程序的字符流 识别出有词法意义的单词( Lexemes ) 返回单词记录(单词类别,单词本身) 滤掉空格 跳过注释 发现词法错误 程序结构: 输入 :字符流(什么输入方式,什么数据结构保存) 处理 : 遍历(什么遍历方式) 词法规则 输出 :单词流(什么输出形式) 二元组 单词类别: 标识符(10) 无符号数(11) 保留字(一词一码) 运算符(一词一码) 界符(一词一码) 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <= 21 do 5 <> 22 end 6 > 23 l(l|d)* 10 >= 24 dd* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0 程序词法分析代码: #include <iostream> #include<stdio.h> #include<string.h> #include<stdlib.h> using namespace std; //关键字 string key[6]={"main","int","if","else","while","do"}; //关键字的种别码 int keyNum[6]={1,2,3,4,5,6}; /

词法分析程序的设计与实现

半世苍凉 提交于 2019-12-01 05:01:11
此程序要逐个检查运行情况,并能当场补全代码。 词法分析程序( Lexical Analyzer )要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词( Lexemes ) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: –遍历(什么遍历方式) –词法规则 输出:单词流(什么输出形式) –二元组 单词类别: 1.标识符(10) 2.无符号数(11) 3.保留字(一词一码) 4.运算符(一词一码) 5.界符(一词一码) 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <= 21 do 5 <> 22 end 6 > 23 l(l|d)* 10 >= 24 dd* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0 #include<stdio.h> #include<iostream> #include<string.h> using namespace std; char prog[80],token[8]; char ch; int syn,p,m=0,n,row,sum=0; char *rwtab[8]={"begin","if",

第五次作业

余生长醉 提交于 2019-12-01 05:00:48
本文借鉴链接:https://blog.csdn.net/just_a_new_life/article/details/80895433 词法分析程序( Lexical Analyzer )要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词( Lexemes ) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: –遍历(什么遍历方式) –词法规则 输出:单词流(什么输出形式) –二元组 单词类别: 1.标识符(10) 2.无符号数(11) 3.保留字(一词一码) 4.运算符(一词一码) 5.界符(一词一码) 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <= 21 do 5 <> 22 end 6 > 23 l(l|d)* 10 >= 24 dd* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0 #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #define _KEY_WORDEND "waiting for your

词法分析程序的设计与实现

一笑奈何 提交于 2019-12-01 05:00:23
词法分析程序( Lexical Analyzer )要求: - 从左至右扫描构成源程序的字符流 - 识别出有词法意义的单词( Lexemes ) - 返回单词记录(单词类别,单词本身) - 滤掉空格 - 跳过注释 - 发现词法错误 程序结构: 输入:字符流(什么输入方式,什么数据结构保存) 处理: –遍历(什么遍历方式) –词法规则 输出:单词流(什么输出形式) –二元组 单词类别: 1.标识符(10) 2.无符号数(11) 3.保留字(一词一码) 4.运算符(一词一码) 5.界符(一词一码) 单词符号 种别码 单词符号 种别码 begin 1 : 17 if 2 := 18 then 3 < 20 while 4 <= 21 do 5 <> 22 end 6 > 23 l(l|d)* 10 >= 24 dd* 11 = 25 + 13 ; 26 - 14 ( 27 * 15 ) 28 / 16 # 0 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 char savearray[100],outarray[100]; 5 char ch; 6 int row,arrays,count,m,i,p;//count为计数器 p为指针 7 char *wordsymbol[6] = {"if",