码迷,mamicode.com
首页 >  
搜索关键字:词法分析器    ( 195个结果
构造可配置词法语法分析器生成器(上)
词法分析器(tokenizer)的作用是按照词法定义规则将输入流分解为token序列,同时记录与每个token匹配的串和出现的位置等信息提供给语法分析器。手工编写一个针对某种语言的词法分析器是比较容易的,事实上很多编译器的词法分析器也是手写的,这种方式的优点是直观容易理解,缺点是开发效率低且易出错。编译技术经过几十年的发展已经形成了一套成熟的理论,应用这些理论可以让我们实现词法分析器的自动构造。在Lex中,每个词法规则由正则表达式定义,我们只需要定义每个token的正则表达式,Lex就可以自动生成对应的分析...
分类:其他好文   时间:2014-09-22 10:56:12    阅读次数:701
词法分析器的作用
词法分析器的主要任务是读入源程序的输入字符、将它们组成词素,生成并输出一个词法单元序列,每个词法单元对应于一个词素。当词法分析器发现了一个标识符的词素时,要将这个词素添加到符号表中。其他任务:过滤掉源程序中的注释和空白。将编译器生成的错误信息与源程序的位置联系起来。记录行号等。词法分析器的两个级联的...
分类:其他好文   时间:2014-09-09 18:12:09    阅读次数:335
jcSQL词法分析器对字符串token的解析
上星期写完词法分析器的时候,曾遇上一个无关紧要却X疼的问题。毕竟是第一次完整地写整个语言的编译器(暂且这么叫着吧,解释器更靠谱),由于经验不足,在字符串解析这一块驻足了两天才解决掉,这里记录下来供以后参考。哦对了,之所以想自己手写词法分析器,并不是我不知道有自动工具可以自动生成,而是我不会用,嗯,果...
分类:数据库   时间:2014-08-10 18:19:10    阅读次数:414
使用flex
Flex如何处理二义性模式:1、词法分析器匹配输入时匹配尽可能多的字符串2、如果两个模式都可以匹配的话,匹配在程序中更早出现的模式上下文相关的记号flex提供起始状态(start state)的概念,可以动态地开启和关闭针对特定模式的识别,对于处理上述上下文相关的情况比较有用。Flex词法分析器中的...
分类:其他好文   时间:2014-08-07 18:41:21    阅读次数:373
使用flex和bison实现的sql引擎解析
由于老师要求,最近在做oceanbase存储过程的实现,在oceanbase 0.4以前是不支持存储过程的。实现的主要步骤主要包括 1、语法解析 2、词法解析 3、具体执行语法树的步骤 现在先来说说语法解析吧,在这一块主要是使用的flex( 词法分析器生成工具) 和bison(语法分析器生成器) 这两个是对用户输入的存储过程语句进行解析的 来具体说说该怎么实现对sql语句的分析吧 ...
分类:数据库   时间:2014-08-06 14:59:51    阅读次数:468
【FLEX&YACC】第二天制作一个简单计算器
首先写词法分析器: 词法分析器要返回记号: “+” 返回ADD “-” 返回SUB “*” 返回MUL “/” 返回DIV 输入的实数全部被当作double类型处理 换行符返回CR calc.l: %{#include #include "y.tab.h"int yywrap(void){ /*免链...
分类:其他好文   时间:2014-07-28 14:25:53    阅读次数:329
sizzle分析记录:分解流程
Name: Newsletter: 1 2 3 js$("form div > p[name=aaron]")解析的流程:编译器:分5个步骤涉及: TAG元素 关系选择器 属性选择器1:通过tokenize词法分析器分组2:遍历tokens,从右边...
分类:其他好文   时间:2014-07-21 14:23:03    阅读次数:299
atitit.java解析sql语言解析器解释器的实现
atitit.java解析sql语言解析器解释器的实现 1. 解析sql的本质:实现一个4gl dsl编程语言的编译器 1 2. 解析sql的主要的流程,词法分析,而后进行语法分析,语义分析,构建sql的AST 1 3. 词法分析器 2 4. 语法分析器--ANTLR 2 5. Eclipse插件,,ANTLR Studio 3 6. 一个基于javacc实现的解析...
分类:数据库   时间:2014-07-14 13:16:35    阅读次数:500
词法分析器 /c++实现
#include #include #include #include #include #include #include using namespace std; int line=1,row=1; char c; mapma; struct kind { string na; //单词 int num; //内码 string type; //类型 ...
分类:编程语言   时间:2014-06-29 20:37:12    阅读次数:195
使用解析器
使用解析器   使用解析器是非常简单,可以使用它自己的词法分析器,但是,用fsyacc.exe 产生的解析器总是要求词法分析器。在这一小节,我们将讨论如何使用自己的词法分析器,以及与解析器联合。   警告 记住F# 编译器不能直接使用.fsl 和 .fsy 文件,需要用fslex.exe 和 fsyacc.exe 进行编译,创建.fs 文件,然后才能使用。通常,使用预编译事件实现,它在 ...
分类:其他好文   时间:2014-06-16 21:59:41    阅读次数:247
195条   上一页 1 ... 17 18 19 20 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!