3.2语言和文法 ·例悬空ese的文法 stmt -if expr then stmt else stmt if expr then stmt other 提左因子 stmt->if expr then stmt optional else part other optional else part -else stmt
3 2. 语言和文法 • 例 悬空else的文法 stmt if expr then stmt else stmt | if expr then stmt | other 提左因子 stmt if expr then stmt optional_else_part | other optional_else_part else stmt |
33自上而下分析 3.3.1自上而下分析的一般方法 ·例文法S→aCbC→cd|c 为输入串w=acb建立分析树 不能处理左递归
3 3. 自上而下分析 3.3.1 自上而下分析的一般方法 • 例 文法 S aCb C cd | c 为输入串w = acb建立分析树 S S S a C b a C b a C b c d c 不能处理左递归
33自上而下分析 不能处理左递归的例子 算术表达文法 E→E+TT T-T*FF F-→(E)lid
3 3. 自上而下分析 • 不能处理左递归的例子 算术表达文法 E E + T | T E T T F | F F ( E ) | id E + T F ( E ) | id E + T E + T ………
3.3自上而下分析 3.3.1自上而下分析的一般方法 ·例文法S→aCbC→cdc 为输入串w=acb建立分析树 不能处理左递归,需要使用复杂的回溯技术
3 3. 自上而下分析 3.3.1 自上而下分析的一般方法 • 例 文法 S aCb C cd | c 为输入串w = acb建立分析树 S S S a C b a C b a C b c d c 不能处理左递归,需要使用复杂的回溯技术
3.3自上而下分析 3.3.1自上而下分析的一般方法 ·例文法S→aCbC→cd|c 为输入串w=Cb建立分析树 不能处理左递归,需要使用复杂的回溯技术, 回溯导致分析工作推倒重来
3 3. 自上而下分析 3.3.1 自上而下分析的一般方法 • 例 文法 S aCb C cd | c 为输入串w = acb建立分析树 S S S a C b a C b a C b c d c 不能处理左递归,需要使用复杂的回溯技术, 回溯导致分析工作推倒重来