• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
勿在浮沙筑高台
博客园 首页 新随笔 联系 订阅 订阅 管理

2010年5月19日

VSX开发之语言服务系列(6)——Lex和Yacc
摘要: 前言当我们熟悉了如何构建起自己的语言服务之后,剩下的问题就是真正的完成扫描和解析,任何一个优秀的语言服务都少不了优秀的扫描程序和解析程序。编写扫描程序和解析程序有很多种方式,我想Lex和Yacc是比较常用的,否则微软也不会去实现一个基于C#的Lex和Yacc(我指的是MPLEX 和 MPPG)。俗话说磨刀不误砍柴,我们先来了解一下Lex和Yacc。本文的部分内容摘自:http://www.ibm.... 阅读全文
posted @ 2010-05-19 15:46 P_Chou 阅读(1141) 评论(1) 推荐(1)
 
VSX开发之语言服务系列(5)——构建自己的Scanner和Pareser
摘要: 回顾在上一篇中,我们从一个空Package开始创建了一个语言服务的基本架构,并且借用ManagedMyC的Scanner和Parser。这篇中,我们将完成一个简单的Scanner,先看下效果图: 可以看到在这个语言服务中,大写字母被着色成红色,小写字母是紫色,数字是蓝色,其他字符时黑色的。接下来我们就来实现这个功能。lexer.lex首先修改lexer.lex。删除原有的代码,加入如下代码:暂时不... 阅读全文
posted @ 2010-05-19 14:01 P_Chou 阅读(916) 评论(1) 推荐(1)
 
VSX开发之语言服务系列(4)——从空Package开始构建语言服务框架
摘要: 回顾在前面两篇中,我们研究了ManagedMyC这个例子的代码结构,了解了一个语言服务基本组成以及Managed Babel在语言服务中是如何工作的。在接下来的两篇中,我将从一个空的集成模式Package开始,一步步创建一个简单的语言服务:在这个语言中,没有语法,我们只是简单的利用着色器区分数字和字母,该服务定义的文件后缀为".sls"。逐步开始一、创建空Package语言服务的载体是包,因此我们... 阅读全文
posted @ 2010-05-19 10:23 P_Chou 阅读(890) 评论(0) 推荐(1)
 
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3