编译原理——变量声明语句(十五)

原创 2012年03月30日 22:30:30

栈结构。

代码:

MyStack.java

package per.eyuan.util;

public class MyStack {
	//用来存储状态,符号,语义等信息
	//字符串栈
	private String s[]=new String[50];
	private int top;//栈顶
	
	public MyStack() {
		super();
		init();
	}
	public void init(){
		for(int i=0;i<s.length;i++){
			s[i]=new String();
		}
		top=-1;
	}
	//获取栈中元素的个数
	public int getLength(){
		return top+1;
	}
	public void push(String s1){
		top++;
		s[top]=s1;
	}
	public String pop(){
		if(top==-1){
			return null;
		}else{
			String s2=s[top];
			top--;
			return s2;
		}
	}
	public String getTop(){
		if(top==-1){
			return null;
		}else{
			return s[top];			
		}
	}
	public String[] getAll(){
		//返回栈中所有元素
		if(top==-1){
			System.out.println("null,the stack is empty");
			return null;
		}else{
			int i=0;
			String ss[]=new String[top+1];
			for(int ii=0;ii<ss.length;ii++){
				ss[ii]=new String();
			}
			while(i<=top){
				ss[i]=s[i];
				i++;
			}
			return ss;
		}		
	}
}

编译原理语法分析器

需求分析采用至少一种句法分析技术(LL(1)、SLR(1)、LR(1)或LALR(1))对类高级语言中的基本语句进行句法分析。阐述句法分析系统所要完成的功能。 (1)能识别以下几类语句: ...
  • guoyang1305584135
  • guoyang1305584135
  • 2016年11月01日 19:49
  • 1040

C语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?

参考网址:http://www.cnblogs.com/web-HCJ/p/4468689.html 报错信息:error C2065: 'salary' : undeclared ...
  • listener51
  • listener51
  • 2016年11月23日 20:49
  • 1914

.c中变量必须定义在执行语句前面

废话不多说,先看下面代码: int main() {     int a =1; a = 2; int b = 3; } 如果你将这段代码保存在.c文件下,在vc++6.0中去编译,编译器会报错...
  • Saintyyu
  • Saintyyu
  • 2015年09月08日 13:16
  • 1621

编译原理语法分析对循环语句和条件判断语句编写词法分析编译程序,只能通过一遍扫描完成

实验目的:对循环语句和条件判断语句编写词法分析编译程序,只能通过一遍扫描完成。(用c++实现) 实验要求: (1)关键字: for if then else while do 所有关键字都是小写...
  • liuzhustu
  • liuzhustu
  • 2017年03月30日 19:20
  • 1782

sqlite3 中执行带变量的命令

最近一直在学sqlite3的用法,学了sqlite3的基本用法之后,接着学C语言和sqlite3结合的使用方法,学完了这个之后又学qt中sqlite3的使用方法,不过到现在为止,我都没有成功用qt中的...
  • qq_20725221
  • qq_20725221
  • 2015年11月11日 18:26
  • 2617

extern 声明外部变量

声明外部变量 现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是 互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。 创建一个工程,里面含有A.cpp...
  • fengkuangshixisheng
  • fengkuangshixisheng
  • 2014年10月16日 11:26
  • 906

JS变量重复声明以及忽略var 声明的问题及其背后的原理

JS的容错率很高,一些其他语言常见的小错误JS都能大度得包容,比如给一个方法传入超出预计的参数、在声明变量之前使用该变量(变量的声明提升解决了这个问题)等等,这里我们就要解剖一下JS变量重复声明以及当...
  • SuperCoooooder
  • SuperCoooooder
  • 2016年10月09日 14:35
  • 3749

JavaScript中变量的声明和赋值

变量是指程序中一个已经命名的存储单元,它的主要作用就是为数据操作提供存放信息的容器。变量是相对常量而言的。常量是一个不会改变的固定值,而变量的值可能会随着程序的执行而改变。变量有两个基本特征,即变量名...
  • JAVAbccd
  • JAVAbccd
  • 2017年12月14日 13:17
  • 74

C语言中的声明与定义的区别

1、对于下面的声明语句 int a;       如果其位置出现在所有的函数体之外,那么它就被称为外部对象a的定义。这个语句说明了a是一个外部整型变量,同时为a分配了存储空间。因为外部对象a并没有被...
  • kerry0071
  • kerry0071
  • 2014年06月23日 08:54
  • 3807

使用delete删除var声明的变量

使用delete删除var声明的变量文章的标题的确让人感到难以置信,甚至在《javascript权威指南(第6版)》第5章5.3.1中直截了当的写到: var声明的变量是无法通过delete删除的...
  • Hukaihe
  • Hukaihe
  • 2016年07月07日 19:22
  • 13772
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译原理——变量声明语句(十五)
举报原因:
原因补充:

(最多只允许输入30个字)