概述 有了构建语法的类,存储符号的类,现在就可以对表达式进行扫描,解析了。扫描可以抽象出一个Scanner类来完成这一个功能,而解析可以抽象出一个Parser类来完成这一个功能。这两个类存在一定的关系,扫描与解析的互动是这样子的:扫描到一个标识符,然后解析它是什么标识符。由于该表达式计算器是要支持一...
分类:
其他好文 时间:
2015-02-14 23:47:30
阅读次数:
196
计算器的github下载地址:https://github.com/ljian1992/calculator我们的最终目的是计算出表达式中的值,因此就需要定义一个抽象类用于计算表达式的值,该抽象类定义为:Node下面所有的类图不使用UML建模语言画的,是通过visual studio自动生成的类关系...
分类:
其他好文 时间:
2015-02-12 00:37:50
阅读次数:
171
基于对象编程与面向对象编程 我们的最终目的是用C++设计一个面向对象的表达式计算器,所以非常有必要弄清楚,什么是基于对象编程和面向对象的编程。而要弄清楚这一点,又要先弄明白什么是值语言,什么是对象语义值语义:对象的拷贝与原对象无关,拷贝后与原对象脱离关系,互不影响。这种拷贝叫深拷贝。拷贝之后脱离关系...
分类:
其他好文 时间:
2015-02-12 00:37:15
阅读次数:
215
计算器的github下载地址:https://github.com/ljian1992/calculator 符号表,函数表,变量存储表 表达式计算器,需要支持变量和函数,而变量和函数都是些符号,因此设置一个SymbolTable类来存储这些符号。符号有两种,一种是变量,一种是函数,故在设置一个St...
分类:
其他好文 时间:
2015-02-12 00:29:54
阅读次数:
185
巴科斯范式(BNF) 1.在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。 2.在双引号外的字(有可能有下划线)代表着语法部分。 3.尖括号( )内包含的为必选项。 4.方括号( [ ] )内包含的为可选项。 5.大括号( { } )内包含的为可重复0至无...
分类:
其他好文 时间:
2015-02-11 23:16:48
阅读次数:
212
from:http://www.cnblogs.com/jobin/articles/1152213.html有些表达式在报表中很常用。其中包括更改报表中的数据外观的表达式、计算总数的表达式和更改报表项属性的表达式。本主题介绍了报表中可用于常见任务的一些表达式。报表中的许多表达式都包含函数。您可以编...
分类:
其他好文 时间:
2015-02-10 15:14:39
阅读次数:
232
在javascript中,表达式是短语,那么语句(statement)就是整句或命令。正如英文语句以句号结尾,javascript以分号结尾。表达式计算出一个值,但语句使某件事发生。“使某件事发生”的一个方法是计算带有副作用的表达式。诸如赋值和函数调用这些有副作用的表达式,是可以作为单独的语句的。这...
分类:
编程语言 时间:
2015-02-03 00:39:29
阅读次数:
261
12.5.3 在 F# 中实现计算生成器
在计算表达式块前面的标识符,是类的实例,把所需的操作实现成为实例成员。许多操作都已经有了,我们根本不必要提供所有的,最基本的操作用 Bind 和 Return 成员实现。当 F# 编译器看到计算表达式,比如清单 12.18 时,会把它转换为使用这些成员的F# 代码。F# 示例转换成这样:
value.Bind(ReadInt(), fun ...
分类:
其他好文 时间:
2015-01-30 17:41:25
阅读次数:
153
1,? import java.util.Scanner
/**
* Author: bruce
* Date: 2015-01-24
*/
object ConsoleScanner {
def main(args: Array[String]) {
println("Please enter a phase: ");
val scan = new Scanner(...
分类:
其他好文 时间:
2015-01-27 13:38:04
阅读次数:
153
题意:给出一个矩阵表达式,计算总的乘法次数。分析:基本的数学知识:一个m×n的矩阵A和n×s的矩阵B,计算AB的乘法次数为m×n×s。只有A的列数和B的行数相等时,两个矩阵才能进行乘法运算。表达式的处理:可以用一个栈来存储,遇到字母入栈,遇到右括号将栈顶两个元素出栈,然后将乘积入栈。 1 #incl...
分类:
其他好文 时间:
2015-01-26 22:26:39
阅读次数:
268