name='abc'; echo $this->name; } }$a=new test();$a->getName();1.$this->name='abc'对应的BNF范式expr_without_variable: variable '=' ...
分类:
Web程序 时间:
2015-04-15 11:06:52
阅读次数:
260
昨天我们开始设计了一门新语言,制定了基本的开发架构,今天我们就先来了解一下,两个非常好用的工具,编译器前端构建的神器——Lex&Yacc,这两个工具在linux下叫做flex和bison。Lex是词法分析器构建工具,我们安装对应的词法规则书写,那么就能够为我们生成对应的词法分析器,自动帮我们分好token,而分词工作,一直是编译系统的基础任务。我们今天,先来尝试编写一个BNF语法的解析器。...
分类:
编程语言 时间:
2015-04-14 19:45:31
阅读次数:
313
要使用ANTLR生成语言的词法分析器(Lexer)跟语法分析器(Parser),我们需要告诉ANTLR我们的语言的文法(Grammar)。ANTLR采用的是上下文无关文法(Context Free Grammar),使用类似BNF的符号集来描述。使用上下文无关文法的语言比较常用的Parser有两种,LL Parser和LR Parser,而ANTLR帮我们生成的是前者。...
分类:
其他好文 时间:
2015-04-09 08:53:29
阅读次数:
644
今日漫谈的是编译技术,作为计算机科学中的皇后,一只是编程中最为关键的技术之一,但由于太过繁杂,往往不被一般开发者重视。但其实,它是计算机代码优美结构的基石,了解编译技术,往往能让你成为更加优秀的程序员。...
分类:
其他好文 时间:
2015-04-03 15:26:54
阅读次数:
157
查询Mysql帮助文档,如何写SQL语句的时候,需要注意SQL语法,这里就需要知道BNF巴科斯范式。巴科斯范式:BNF用于描述计算机语言。基本的规则如下:尖括号 内包含的为必选项。方括号[] 内包含的为可选项。大括号{} 内包含的为可重复0至无数次的项。竖线| 表示在其左右两边任选一项,相当于"O....
分类:
数据库 时间:
2015-03-29 12:09:50
阅读次数:
158
巴科斯范式(BNF) 1.在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。 2.在双引号外的字(有可能有下划线)代表着语法部分。 3.尖括号( )内包含的为必选项。 4.方括号( [ ] )内包含的为可选项。 5.大括号( { } )内包含的为可重复0至无...
分类:
其他好文 时间:
2015-02-11 23:16:48
阅读次数:
212
1.BNF范式(语法规则)%token T_PAAMAYIM_NEKUDOTAYIM ":: (T_PAAMAYIM_NEKUDOTAYIM)"%token T_EXTENDS "extends (T_EXTENDS)"unticked_class_declaration_statement: .....
分类:
Web程序 时间:
2015-01-13 00:00:03
阅读次数:
425
1.BNF范式%token T_OBJECT_OPERATOR "-> (T_OBJECT_OPERATOR)"unticked_statement:| expr ';' { zend_do_free(&$1 TSRMLS_CC); }expr: r...
分类:
Web程序 时间:
2015-01-11 22:51:50
阅读次数:
366
Pl/0语言文法的BNF表示:〈程序〉→〈分程序>.〈分程序〉→[][][]〈语句〉→CONST{,};→=→{}→VAR{,};→{|}→;{}→procedure;→|||||||→:=→begin{;}→|ood→[+|-]{}→{}→||()→+|-→*|/→=|#||>=→ifthen→c...
分类:
其他好文 时间:
2014-12-01 23:53:34
阅读次数:
259
the science of programming 的三点
0.如何用BNF范式写优先级语法
1.关于一个数组的数学解析:数组就是一个函数,index->value的映射
2.BNF范式与正则表达式是不同的,之前一直搞混乱了。正则表达式是用来描述词法,BNF范式是用来描述语法的。
--------------------------------------------------------------------...
分类:
其他好文 时间:
2014-11-26 14:30:41
阅读次数:
168