会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
勿在浮沙筑高台
博客园
首页
新随笔
联系
订阅
管理
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
阅读(1104)
评论(1)
推荐(1)
编辑
VSX开发之语言服务系列(5)——构建自己的Scanner和Pareser
摘要: 回顾在上一篇中,我们从一个空Package开始创建了一个语言服务的基本架构,并且借用ManagedMyC的Scanner和Parser。这篇中,我们将完成一个简单的Scanner,先看下效果图: 可以看到在这个语言服务中,大写字母被着色成红色,小写字母是紫色,数字是蓝色,其他字符时黑色的。接下来我们就来实现这个功能。lexer.lex首先修改lexer.lex。删除原有的代码,加入如下代码:暂时不...
阅读全文
posted @ 2010-05-19 14:01 P_Chou
阅读(890)
评论(1)
推荐(1)
编辑
VSX开发之语言服务系列(4)——从空Package开始构建语言服务框架
摘要: 回顾在前面两篇中,我们研究了ManagedMyC这个例子的代码结构,了解了一个语言服务基本组成以及Managed Babel在语言服务中是如何工作的。在接下来的两篇中,我将从一个空的集成模式Package开始,一步步创建一个简单的语言服务:在这个语言中,没有语法,我们只是简单的利用着色器区分数字和字母,该服务定义的文件后缀为".sls"。逐步开始一、创建空Package语言服务的载体是包,因此我们...
阅读全文
posted @ 2010-05-19 10:23 P_Chou
阅读(873)
评论(0)
推荐(1)
编辑
公告