#include<stdio.h>
char curr;
char LL1[1000];
int N=-1;
void Top();
void Top1();
void Top2();
void top();
void top1();
void error();
void scaner();
void main()
{ char ch;
int i=0;
printf("请输入需要分析的curr语法:(以#结束)\n");
do{
scanf("%c",&ch);
LL1[i] = ch;
i++;
}while(ch != ‘#‘);
scaner();
Top1();
if(curr == ‘#‘)
printf("成功!\n");
else{
printf("文法有误!!\n");
error();
}
}
void scaner(){ //用于读取源函数的下一个字符
N++;
if(LL1[N] == ‘ ‘){
N++;
}else{
curr = LL1[N];
}
}
void Top(){
Top2();
top();
}
void Top1(){
Top();
top1();
}
void Top2(){
if(curr == ‘(‘){
scaner();
Top1();
if(curr == ‘)‘){
scaner();
}
else
{
error();
}
else
{
//判断是否是函数或者是数字
while(1){
if(curr >= ‘a‘ && curr<=‘z‘ || curr >= ‘A‘ && curr <= ‘Z‘ || curr >= ‘0‘ && curr <= ‘9‘){
scaner();
}
else
{
break;
}
}
}
}
void top(){
if(curr == ‘*‘){
scaner();
Top2();
Top();
}else if(curr == ‘/‘){
scaner();
Top2();
Top();
}else if(LL1[N+1] == ‘#‘ || LL1[N+1] == ‘+‘ || LL1[N+1] == ‘/‘ || LL1[N+1] == ‘*‘ || LL1[N+1] == ‘-‘){
if(LL1[N] != ‘(‘ && LL1[N] != ‘)‘)
error();
}
}
void top1(){
if(curr == ‘+‘){
scaner();
Top();
top1();
}
else if(curr == ‘-‘){
scaner();
Top();
top1();
}else if(LL1[N+1] == ‘#‘ || LL1[N+1] == ‘+‘ || LL1[N+1] == ‘/‘ || LL1[N+1] == ‘*‘ || LL1[N+1] == ‘-‘){
if(LL1[N] != ‘(‘ && LL1[N] != ‘)‘)
error();
}
}
void error(){
printf("%d %c之后的文法有错!\n",N,curr);
}
12 23 递归语法分析
时间: 2024-12-14 11:38:28
12 23 递归语法分析的相关文章
12.16~12.23工作日志
12.16~12.23工作日志 2016.12.16 1.cick事件调用的函数中加入touchmove等事件会发生事件穿透,详情(http://www.tuicool.com/articles/6NfaUnM) 移动设备的click事件有300ms延迟,用于判断是否双击 2.ios设备会有一个默认的css样式,如input按钮在电脑上默认为方形,而在iPhone上默认为圆形,清除ipone默认样式方法: Input{-webkit-appearance:none;} 3.border-radi
12.21 php-fpm的pool;12.22 php-fpm慢执行日志;12.23 ;12.24
12.21 php-fpm的pool 1.添加pool: [[email protected] ~]# vim /usr/local/php-fpm/etc/php-fpm.conf 添加第二个pool: [hao1.com] listen = /tmp/hao1.sock listen.mode = 666 user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_
12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_b
12.21 php-fpm的pool [[email protected] etc]# vim php-fpm.conf [[email protected] etc]# mkdir php-fpm.d [[email protected] etc]# cd php-fpm.d [[email protected] php-fpm.d]# vim www.conf [[email protected] php-fpm.d]# vim martin.conf [martin] listen = /
12.21 php-fpm的pool 12.22 php-fpm慢执行日志 12.23 open_basedir 12.24 php-fpm进程管理
12.21 php-fpm的pool php-fpm有一个概念叫pool,就是使用psaux看到的右侧的那一列,也就是它的池子, 如下图,我们在这里只定义了一个pool 其实他是支持定义多个池子的,每一个池子我们可以监听不同的sock,或者不同的tcpip,这样的话如果我们的nginx有好几个站点每个站点都可以使用不同pool,这样做的好处就是其中一个php502了,其他站点不收影响,(502很有可能是php资源不够了)如果你所有的网站都使用了同一个池子的话,其中一个网站发生了故障,比如程序员写
mongo 杀掉慢的程序killMyRunningOps(";12.23.32.21";) #####这个是客户端的ip
mongodb运维(3) db.currentOp与db.killOp命令 2018.08.12 23:55 113浏览 字号 好久没更新mongo运维这块知识了,这次介绍 db.currentOp与db.killOp命令 数据库优化方法有很多,但所有数据库优化都离不开慢查询优化.mysql.mongodb都可以开启慢查询,来对数据库查询进行分析.开启慢查询日志,对性能会有一定的影响.mongoDB 有时我们只想临时看下慢查询日志,应该如何处理. 这时,我们可以用到mongdb的db.curre
12.30递归下降分析
1 #include<stdio.h> 2 #include<string.h> 3 char str[10]; 4 int index=0; 5 void E(); //E->TX; 6 void X(); //X->+TX|-TX| e 7 void T(); //T->FY 8 void Y(); //Y->*FY |/fy| e 9 void F(); //F->(E) | id 10 int id(); //id 11 int main()
作业:12.23
打印以下图型: 行i 列j i与j关系●●●●● 1 5●●●●● 2 5●●●●● 3 5●●●●● 4 5●●●●● 5 5 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ConsoleApplication1 7 { 8 class Class1 9 { 10 //五行五列 11 static void
2019.12.14 递归类型题
/** * DiGui.java * com.DuiXiang * * Function: TODO * * ver date author * ────────────────────────────────── * 2019年12月14日 17671 * * Copyright (c) 2019, TNT All Rights Reserved.*/ package com.DuiXiang;/** * ClassName:DiGui * Function: TODO ADD FUNCTIO
AI行业精选日报_人工智能(12&#183;23)
日本探索用人工智能指挥交通 据日本共同社报道,日本一家机构正在研究开发一套新的交通系统,将应用人工智能技术分析数据来缓解城市交通拥堵.报道称,在日本新能源和产业技术综合开发机构研发的这套系统中,人工智能将扮演指挥官的角色.通过分析车流量数据,以及摄像头采集到的车辆位置等图像信息,人工智能系统将控制信号灯的切换以及时长等,从而缓解拥堵状况.此外,在行人过马路时,系统还可以感知人行横道上的行人,并适时延长过马路绿灯的时间. 来源:http://baijiahao.baidu.com/s?id=165