lrparser() { if(syn==1) { scaner(); /*读下一个单词符号*/ yucu(); /*调用yucu()函数;*/ if (syn==6) { scaner(); if ((syn==0)&&(kk==0)) printf("success!\n"); } else { if(kk!=1) printf("the string haven't got a 'end'!\n"); kk=1; } } else { printf("haven't got a 'begin'!\n"); kk=1; } return;}每行代码注释
时间: 2024-03-19 17:42:15 浏览: 52
这段代码是一个LR语法分析器的函数,函数名为lrparser。
第1行:开始定义lrparser函数。
第2行:如果syn的值为1,则进入if语句。
第3行:调用scaner函数,读取下一个单词符号。
第4行:调用yucu函数。
第5-6行:如果读取的单词符号是6,则进入if语句。
第7行:再次调用scaner函数,读取下一个单词符号。
第8-10行:如果下一个单词符号是0,且kk的值为0,则输出"success!"。
第11-13行:否则,如果kk的值不为1,则输出"the string haven't got a 'end'!",并将kk的值赋为1。
第14-15行:否则,如果syn的值不为1,则输出"haven't got a 'begin'!",并将kk的值赋为1。
第16行:函数结束,并返回。
相关问题
yucu(){ statement(); /*调用函数statement();*/ while(syn==26) { scaner(); /*读下一个单词符号*/ if(syn!=6) statement(); /*调用函数statement();*/ } return;} statement() { if(syn==10) { scaner(); /*读下一个单词符号*/ if(syn==18) { scaner(); /*读下一个单词符号*/ expression(); /*调用函数statement();*/ } else { printf("the sing is wrong!\n"); kk=1;} } else { printf("wrong sentence!\n"); kk=1; } return;} 解释每行代码
这段代码是一段简单的程序代码,主要是两个函数yucu()和statement()。下面是每行代码的解释:
```
yucu(){ statement(); /*调用函数statement();*/
```
定义函数yucu,调用函数statement。
```
while(syn==26) { scaner(); /*读下一个单词符号*/
```
while循环,当syn等于26时,执行循环体。循环体内调用函数scaner读取下一个单词符号。
```
if(syn!=6) statement(); /*调用函数statement();*/
```
如果读取到的单词符号不是6,调用函数statement。
```
return;}
```
函数yucu结束,返回。
```
statement() { if(syn==10) { scaner(); /*读下一个单词符号*/
```
定义函数statement,如果读取到的单词符号是10,调用函数scaner读取下一个单词符号。
```
if(syn==18) { scaner(); /*读下一个单词符号*/ expression(); /*调用函数expression();*/
```
如果读取到的单词符号是18,调用函数scaner读取下一个单词符号,并调用函数expression。
```
else { printf("the sing is wrong!\n"); kk=1;} }
```
否则输出错误信息,将kk赋值为1。
```
else { printf("wrong sentence!\n"); kk=1; }
```
如果读取到的单词符号不是10,输出错误信息,将kk赋值为1。
```
return;}
```
函数statement结束,返回。
if(jsonObject==null){ //获取不到则获取下一个导出数据 log.info("asyn51LA-maskid:"+maskid+"获取失败"); continue; }解释一下这段代码
这段代码是一个while循环中的一部分,用于从某个数据源获取数据。具体解释如下:
1. 首先,代码判断一个名为jsonObject的变量是否为null。如果为null,则说明从数据源获取不到数据,需要继续获取下一个导出数据。
2. 如果获取失败,则记录一条日志,说明获取失败,并使用continue关键字跳过当前循环,继续执行下一个循环。
3. 如果获取成功,则可以对获取到的数据进行处理,例如解析JSON格式的数据或将其存储到数据库中。
总之,这段代码的主要作用是从数据源获取数据,并在获取失败时记录日志并跳过当前循环,继续执行下一个循环。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)