有人可以告诉我这个问题想问我什么吗?
Can somebody walk me through what this question is trying to ask of me?
下面的编程语言问题似乎很不清楚,它想让我做什么对我来说并不明显,有人可以帮助我理解它吗?
问题:
为一组简单的语言规则实现递归下降解析器的一部分。使用任何编程语言来实现;如果不是通用语言,请在评论中注明是哪种语言。您应该为每个非终结符号实现函数,并使用以下描述类 C 语言的一部分的规则。
<ifblock> --> if(<logic_expr>){<stmts>} [else {<stmts>}]
<logic_expr> --> <value> == <value> | <value> != <value>
您可以承担以下职能:
lex(),一个词法分析器,它将下一个标记的代码放入全局变量下一个标记
stmts()
值()
终端符号应使用以下定义的常量进行编码:
CODE LP for ‘(’
“)”的代码 RP
‘{’的代码 LB
‘{’的代码 RB
“==”的代码均衡器
‘!=’的代码 NEQ
“如果”的代码 IF
“else”的代码 ELSE
据我所知:要求你编写两个函数
ifblock
logic_expr
作为递归下降解析器的一部分。
对于其他非终结符号,stmts
和 value
您可以假设存在同名的预写函数。
讲座和教程中应该讨论了如何编写递归下降解析器,所以我假设您知道它是如何工作的。
要从输入流中获取下一个标记,您可以调用 lex()
其中 returns 代码,如终端符号代码中所列。您需要做的是通过调用 lex()
请求令牌代码来实现 ifblock
,并根据语言语法评估和匹配所需的令牌。请注意,根据语法,ifblock
中的 else
部分是可选的。
要计算 if
的逻辑表达式,您需要进入一个函数 logic_expr
,您也需要编写该函数,该函数计算语法中定义的逻辑表达式。同样,您可以假设非终结符 value
的函数确实已经存在。
下面的编程语言问题似乎很不清楚,它想让我做什么对我来说并不明显,有人可以帮助我理解它吗?
问题:
为一组简单的语言规则实现递归下降解析器的一部分。使用任何编程语言来实现;如果不是通用语言,请在评论中注明是哪种语言。您应该为每个非终结符号实现函数,并使用以下描述类 C 语言的一部分的规则。
<ifblock> --> if(<logic_expr>){<stmts>} [else {<stmts>}]
<logic_expr> --> <value> == <value> | <value> != <value>
您可以承担以下职能:
lex(),一个词法分析器,它将下一个标记的代码放入全局变量下一个标记
stmts()
值()
终端符号应使用以下定义的常量进行编码:
CODE LP for ‘(’
“)”的代码 RP
‘{’的代码 LB
‘{’的代码 RB
“==”的代码均衡器
‘!=’的代码 NEQ
“如果”的代码 IF
“else”的代码 ELSE
据我所知:要求你编写两个函数
ifblock
logic_expr
作为递归下降解析器的一部分。
对于其他非终结符号,stmts
和 value
您可以假设存在同名的预写函数。
讲座和教程中应该讨论了如何编写递归下降解析器,所以我假设您知道它是如何工作的。
要从输入流中获取下一个标记,您可以调用 lex()
其中 returns 代码,如终端符号代码中所列。您需要做的是通过调用 lex()
请求令牌代码来实现 ifblock
,并根据语言语法评估和匹配所需的令牌。请注意,根据语法,ifblock
中的 else
部分是可选的。
要计算 if
的逻辑表达式,您需要进入一个函数 logic_expr
,您也需要编写该函数,该函数计算语法中定义的逻辑表达式。同样,您可以假设非终结符 value
的函数确实已经存在。