- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
B演习(言语处理系演习)第一回.ppt
* B演習(言語処理系演習)第4回 田浦 構文解析器 “fib” n n 2 … def if 構文木 def fib ( n ): if n 2: return 1 else: return … 字句列(token stream) 構文解析器 全体像 データ型定義 各構文の種類(変数, 演算式, def, for, etc.)ごとに, その種類の構文木の定義 (typedef struct …) 式すべて, 文すべてを表す構文木の定義 コンストラクタ 各種類の構文木を作る関数 構文解析器本体 各構文の種類ごとに, 字句解析器から字句の列を受け取り, その構文木を作る関数 構文木の定義(文の例) typedef struct stmt_while { /* while文 */ … } stmt_while, * stmt_while_t;typedef struct stmt_for { /* for文 */ … } stmt_for, * stmt_for_t;typedef struct stmt_fundef { /* def文 */ … } stmt_fundef, * stmt_fundef_t;… typedef struct stmt { /* 文全体 */ stmt_kind_t k; /* 種類 */ union { … } } stmt, * stmt_t; while文の例 typedef struct stmt_while { /* while文 */ expr_t e; /* 条件部分 */ stmt_vec_t body; /* 繰り返し本体 */} stmt_while, * stmt_while_t このように, 個々の構文の種類に対し, その構成要素(while文であれば条件式と本体)をフィールドに持つような構造体を作る 文法定義を眺めれば, 個々の構造体がどのようなフィールドを持たねばならないかがわかる コンストラクタ 個々の構文の種類ごとに, その種類の構文木を作るような関数を作る stmt_t mk_stmt_while(expr_t e, stmt_t s, …) { … }stmt_t mk_stmt_for(char * x, expr_t e, stmt_t s, …) { … } 注: …のところには, ソースコード上の位置情報など, 必要な情報を適宜追加することだろう 構文解析器の作成 以上の「準備」ができていると仮定して, 実際の構文解析(字句の列から構文木を作る)処理について考える 文法定義の読み方(1)単純な連結 例 (while文):while_stmt ::= while expression : suite 読み方: while_stmt (とみなされる字句の列)とは, “while” (というただひとつの字句からなる列) expression (とみなされる字句の列), “:” (というただひとつの字句からなる列) suite (とみなされる字句の列) をこの順に並べたものである 文法定義の読み方(2)複数選択肢 例 (文全体)statement ::= expression_stmt NEWLINE | assignment_stmt NEWLINE | … | while_stmt | for_stmt | funcdef statement (とみなされる字句の列)とは, assignment_stmt とみなされる字句の列とNEWLINEというただひとつの字句からなる列をこの順で連結したもの, または, …, または funcdefとみなされる字句の列, のいずれかである 構文解析器の仕組み概要(1) LL(1)文法用再帰下向き構文解析法 文法記号Aに対し,関数 parse_A(tokenizer_t t, …)を定義 渡されたtから生成されるいくつかの字句列がA(とみなされる字句列)であれば,そこまで字句列を読み込んで,Aを表す構造体を作って返す さもなければエラー(行番号など)を表示して終了(exit) 構文解析器の仕組み概要(2) … A? t tの現在の字句(tok_cur_token_XXX(t)) parse_A(t, …)開始時 … t tの現在の字句(tok_cur_token_XXX(t)) parse_A(t, …)終了時 各記号ごとの構文解析器の導出 文法規則から(機械的に)導く 基本アイデア A -
您可能关注的文档
- 2015-2016年教师全员培训注册流程及常见问题解答.doc
- 20150302融合新趋势创造新模式ver.0.ppt
- 2015年4月怀化市高三二模理科综合试卷.doc
- 2015年全国青少年“未来之星”阳光体育大会文化交流展 .doc
- 2015年江苏省卫生计生监督技能竞赛活动方案.doc
- 2015考试标准的新变化与应对策略.ppt
- 2016年X月月报.ppt
- 2016年上海工程技术大学专升本微观经济学考试大纲(点 .doc
- 2016年春季学校卫生监督方案.doc
- 21世纪的教育发展方向.ppt
- CADAL201107-资源建设.ppt - China Academic Digital .ppt
- CAD研究进展 - 山东大学课程中心0.ppt
- Chapter 9 多原子的半经验方法 - 中心简介 - 厦门大学理 .ppt
- Chapter1 气体液体和溶液的性质 (The behaviors of .ppt
- CTI的发展应用.ppt
- C言语を用いたマシン非依存な JITコンパイラ作成フレーム .ppt
- Diapositiva 1 - 科学网—博客.ppt
- DNA遗传标记 - 医科大学网站.doc
- E-Views 简单な使い方.ppt
- EZonExam演示培训文档 - 中南大学图书馆-.ppt
最近下载
- 2025年《新地基基础-基桩高应变法检测》考试复习题库(含答案).pdf VIP
- IPC-7530 群焊工艺温度曲线指南(回流焊和波峰焊) 中文版.pdf VIP
- 农村党员设岗定责情况登记表.pdf VIP
- 外研版(2019) 选择性必修第四册 Unit 4 Everyday Economics Using language教案.docx VIP
- 常见的可爱龙猫卡通插画通用PPT模板.ppt VIP
- 07J912-1变配电所图集.pdf VIP
- 机场容量和航班安排.pptx VIP
- 北师大版(2024)三年级数学上册新教材解读课件.pptx VIP
- T_CSCP T_CSCP0005—2023(电力变压器防腐涂层现场检测规范).pdf VIP
- 第一章结构及其设计教案-高中通用技术地质版必修《技术与设计2》.pdf VIP
文档评论(0)