-
大小: 172KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-13
- 语言: JavaScript
- 标签: java 脚本 解释器
资源简介
这是我用java制作的一个脚本语言解释器,这种脚本语言不是现存的脚本语言,类似Ruby结构。这也是一种完全面向对象的语言。支持操作java对象,但是没有javaScript那么简单。因为这里的基本数据类型也是通过自己定义的,系统除了定义真假为java中的Boolean外的其他的数据类型都要通过,基本语言文件,也就是这里的类文件。目前为测试版本,正在收集Bug。希望大家帮我测试一下,联系我 QQ:495904500 。希望共同探讨的也可以加我。
代码片段和文件信息
import java.io.File;
import java.util.Scanner;
import com.sapp.main.SappEngine;
public class Sapp {
/**
* @param args
* @throws Exception
*/
public static void main(String []args){
SappEngine re = new SappEngine();
try {
//设置默认的本地class路径。
re.setNativeClassPath(“res/native“);
//加载语言简表。
re.load(“res/lang/SappBasicConfigration.sph“);
//加载语言文件
re.load(“res/Test/Hash/hash1.sph“);
//Tools.printVector(re.commnds);
re.exeBegin();
} catch (Exception e) {
e.printStackTrace();
}
/*Scanner input = new Scanner(System.in);
SappEngine re = new SappEngine();
//设置默认的本地class路径。
re.setNativeClassPath(“res/native“);
//加载语言简表。
try {
//re.setCompCodePath(“res/complied“);
re.load(“res/lang/SappBasicConfigration.sph“);
} catch (Exception e1) {
System.out.println(“加载语言简表文件失败!“);
e1.printStackTrace();
}
while(true){
System.out.println(“请输入要执行的操作:lf-加载文件ri-进入交互界面et-退出程序“);
String str = input.nextLine().trim();
if(str.equals(“lf“)){
System.out.println(“请输入要加载的文件(路径):这个命令先清空Sapp中的begin集合。“);
str = input.nextLine().trim();
File file = new File(str);
if(!file.exists()){
System.out.println(“对不起文件不存在!“);
System.out.print(“按回车键继续...“);
input.nextLine();
}else{
try {
//清空begin
re.clearBegin();
//加载文件
re.load(str);
//执行begin
re.exeBegin();
System.out.print(“按回车键继续...“);
input.nextLine();
} catch (Exception e) {
e.printStackTrace();
System.out.print(“按回车键继续...“);
input.nextLine();
}
}
}else if(str.equals(“ri“)){
StringBuffer cjml = new StringBuffer();
System.out.println(“进入了交互模式:任意输入为串接当前命令(如果以-c 开头的为立即执行)exe-执行串接“ +
“好的命令(会清空此命令)cr-清除串接好的命令et-退出交互模式“);
while(true){
System.out.print(“>“);
str = input.nextLine().trim();
if(str.equals(“exe“)){
try {
re.exeCode(cjml+““);
System.out.println();
cjml = new StringBuffer();
} catch (Exception e) {
e.printStackTrace();
}
}else if(str.equals(“cr“)){
cjml = new StringBuffer();
}else if(str.equals(“et“)){
break;
}else{
if(str.startsWith(“-c“)){
if(str.length()>2){
str = str.substring(2).trim();
try {
re.exeCode(str);
System.out.println();
} catch (Exception e) {
e.printStackTrace();
}
}else{
System.out.println(“无效的命令:“+str);
}
}else{
cjml.append(str);
}
}
}
}else if(str.equals(“et“)){
break;
}else{
System.out.println(“未知的命令!“);
}
}*/
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 910 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\complie\AnalysedTree$Analysed.class
文件 13367 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\complie\AnalysedTree.class
文件 3907 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\complie\Codedivide.class
文件 10372 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\complie\Complies.class
文件 3908 2011-08-13 17:17 Sapphire1.21测试版\com\sapp\engine\Codedivide.class
文件 26160 2011-08-13 17:17 Sapphire1.21测试版\com\sapp\engine\ComplieCmds.class
文件 2022 2011-09-01 18:58 Sapphire1.21测试版\com\sapp\engine\DivideClass.class
文件 23324 2011-09-01 18:15 Sapphire1.21测试版\com\sapp\engine\Interpreter.class
文件 475 2011-08-19 17:42 Sapphire1.21测试版\com\sapp\engine\ParamsInterface.class
文件 444 2011-08-08 22:47 Sapphire1.21测试版\com\sapp\engine\RunStateException.class
文件 7687 2011-09-01 18:58 Sapphire1.21测试版\com\sapp\engine\SappClass.class
文件 14909 2011-09-01 18:58 Sapphire1.21测试版\com\sapp\engine\SapphireEngine.class
文件 5869 2011-08-09 22:07 Sapphire1.21测试版\com\sapp\engine\SappMethod.class
文件 21529 2011-09-08 14:48 Sapphire1.21测试版\com\sapp\interpreter\Interpreter.class
文件 454 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\interpreter\RunStateException.class
文件 505 2011-09-08 13:46 Sapphire1.21测试版\com\sapp\main\ParamsInterface.class
文件 3382 2011-09-07 20:24 Sapphire1.21测试版\com\sapp\main\Sapp.class
文件 2221 2011-09-08 14:48 Sapphire1.21测试版\com\sapp\main\SappClass$DivideClass.class
文件 6295 2011-09-08 14:48 Sapphire1.21测试版\com\sapp\main\SappClass.class
文件 1406 2011-09-08 14:48 Sapphire1.21测试版\com\sapp\main\SappEngine$ClassMess.class
文件 13363 2011-09-08 14:48 Sapphire1.21测试版\com\sapp\main\SappEngine.class
文件 6539 2011-09-08 14:35 Sapphire1.21测试版\com\sapp\main\SappMethod.class
文件 3770 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\tools\CompliesTools.class
文件 2200 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\tools\EngineTools.class
文件 2119 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\tools\InterpreterTools.class
文件 785 2011-09-08 13:19 Sapphire1.21测试版\com\sapp\tools\SappClassLoader.class
文件 9582 2011-08-08 22:47 Sapphire1.21测试版\com\sapp\tools\Tools.class
文件 1345 2011-09-07 20:06 Sapphire1.21测试版\res\lang\SappArray.sph
文件 499 2011-09-07 12:31 Sapphire1.21测试版\res\lang\SappBasicConfigration.sph
文件 1189 2011-09-07 16:41 Sapphire1.21测试版\res\lang\SappBoolean.sph
............此处省略90个文件信息
相关资源
-
ArcGIS API for ja
vasc ript 实现热力图 -
ArcGIS API for ja
vasc ript ECharts 图表统 - jQuery Jcrop 实现图像裁剪Demo
-
ja
vasc ript简易贪吃蛇 -
ja
vasc ript百度地图行驶轨迹、车辆 - jquery后台管理系统模板
-
tableau ja
vasc ript 介绍 -
ja
vasc ript连接数据库 -
ja
vasc ript基础笔记-尚硅谷视频自己 -
代码高亮显示ja
vasc ript插件 -
ArcGIS for ja
vasc ript 动态标绘燕尾箭 -
Jquery实现省市区/县三级联动的ja
v - 淘宝购物车效果js实现
-
epub-0.3.js ja
vasc ript实现 -
自己整理的ja
vasc ript知识Xmind版 - cocos creator 实现A*寻路
-
ja
vasc ript 支持大文件加解密实现 - ArcGIS API 4.X-heatmap.js
- Photoshop读取Excel文件脚本
-
ja
vasc ript代码自动生成 - js实现三级联动选择大学专业
- v8sharp .net 4.0 binaries
-
java sc
ript 从入门到精通 -
ja
vasc ript实现多功能拼图游戏 -
ja
vasc ript实现磁盘调度算法 - excanvas.min.js
-
ja
vasc ript实现选择文件夹 -
环状进度条 ja
vasc ript 插件 -
ja
vasc ript经典特效---射击小游戏 -
ja
vasc ript参考手册中文版
评论
共有 条评论