计算机专业课智能学习助手

支持学科:数据结构、计算机组成原理、编译原理

即时答案
请输入问题并点击“提交解析”,答案会优先展示在这里。

文法推导与语法树生成器

【功能 A】基于通用有穷文法的推导

【功能 B】基于本系统问题的最左/最右推导对比演示

测试基于自然语言提取的句子,展示 AST 并在两侧对比不同样式语法的展示效果。

文法二义性自动检测

针对经典算术表达式的二义性验证。系统会尝试搜索两套不同的最左推导。

核心知识点速查字典

规范规约与句柄分析

什么是句柄 (Handle)?

在规范规约中,句柄是指右句型中匹配某个产生式右部,并且将其替换为左部非终结符后,代表了最右推导,最后一步(即最左规约的当前步)的那个子串。



输入栏 1:输入任何一个可识别句型,自动查找并标注句柄

输入栏 2:输入问题句子,自动判断规约过程与句柄

乔姆斯基文法自动判定与速查

四类文法交互式对照表

请选择需要对比的文法类型:

文法产生式自动判定工具

输入文法产生式 (以空格分隔符号,用大写字母表示非终结符),系统将自动判断其所属的最高型文法。

词法分析基础模块 (Lexical Analysis)

自动扫描源代码,切分为五大类单词符号(Token):关键字、标识符、常数、运算符、界符。

输入简易算术或逻辑表达式

基于 DFA 的严格词法分析引擎

严格基于状态机的逐字符扫描,支持最长匹配、超前搜索与指针回退。

1. DFA状态图完整演示(包括状态,字符,转移) (Code Input)

[DFA 5-Tuple Definition M = (K, Σ, f, S, Z)]
K (States)  : { q0, q_id, q_int, q_dot, q_float, q_op1, q_slash, q_and, q_or, q_cmt, q_delim, q_err }
Σ (Alphabet): [a-zA-Z_], [0-9], [+ - * / % = < > ! & |], [ ( ) [ ] { } ; . ], [\s \t \n]
S (Start)   : q0
Z (Accept)  : { q_id(⊙), q_int(⊙), q_float(⊙), q_op1(⊙), q_slash(⊙), q_delim(⊙) } 
                * ⊙ denotes Accept States (requires rollback if not exact match)

[Transition Function f: State x Input -> State]
q0 (Start)
    ├── [a-zA-Z_] ─────────➔ q_id ────(loop: [a-zA-Z0-9_]) ──➔ ⊙ Accept (KW/ID)
    │
    ├── [0-9] ─────────────➔ q_int ───(loop: [0-9]) ─────────➔ ⊙ Accept (Int NUM)
    │                         └── [.] ──➔ q_dot ──([0-9])──➔ q_float ──(loop: [0-9]) ➔ ⊙ Accept (Float NUM)
    │
    ├── [+ - * % = < > !] ─➔ q_op1 ───([=])────────────────➔ ⊙ Accept (Compound OP, e.g., +=, ==)
    │                         └── (other) ──────────────➔ ⊙ Accept (Single OP, Rollback)
    │
    ├── [/] ───────────────➔ q_slash ─([/])──➔ q_cmt ──(loop: [^\n]) ──➔ q0 (Skip Comment)
    │                         └── (other) ──────────────➔ ⊙ Accept (Divide OP, Rollback)
    │
    ├── [&] ───────────────➔ q_and ───([&])────────────────➔ ⊙ Accept (Logical AND: &&)
    │
    ├── [|] ───────────────➔ q_or ────([|])────────────────➔ ⊙ Accept (Logical OR: ||)
    │
    └── [ ( ) [ ] { } ; . ]q_delim ─────────────────────➔ ⊙ Accept (Delimiter)

2. 源代码输入 (Code Input)

3. 词法分析实时探测器

当前读取字符: -
所在状态: q0
缓冲区(Buffer):

4. 动态延伸 DFA 树 (CLI Tree)

等待启动扫描...

5.分析出局 Token 序列表

单词 (Lexeme) 类别 二元组