Webit Script 是啥? ==》http://www.oschina.net/p/webit-script
OK 先上效果: 场景:控制台
============================================
Wellcome Webit Script World \(^o^)/
QQ群:302505483
============================================
<<<
echo "Hello WS!";
>>>
Hello WS!
<<<
var a="A", var b="b"; echo a+b;
>>>
应该是语法错了: Syntax error before: 1(15). Hints: 'IDENTIFIER'
<<<
var a="A", b="b"; echo a+b;
>>>
Ab
<<<
exit
Bye (^_^)∠※
嗯, 输入一行代码,输出渲染结果, 输入 exit 退出
【期望】
- 一个简单的Console 工具箱,包含一些使用的工具类
- 用于新手Webit Script的初体验
- Webit Script 的 试错 & debug 工具
- Happy!!!
【创意征集思路】 ... 任何想法 n. 甚至是文案,提示语,错别字,欢迎参与
【写博客时的即时想法】
- cd 到一个目录,执行模版
- 保存控制台的代码到文件
【初始代码2014.05.19】
嗯 就三个文件
happy-console.props
# Webit Script Engine 配置文件
# happy-console.props
[routeLoader-main]
default=webit.script.happy.console.ConsoleLoader
java: webit.script.happy.console.ConsoleLoader
<!-- lang: java -->
package webit.script.happy.console;
import webit.script.exceptions.ResourceNotFoundException;
import webit.script.loaders.Loader;
import webit.script.loaders.Resource;
import webit.script.loaders.impl.resources.StringResource;
/**
* 资源加载器
*
* @author Zqq
*/
public class ConsoleLoader implements Loader {
@Override
public Resource get(String name) throws ResourceNotFoundException {
return new StringResource("<% " + name);
}
@Override
public String concat(String parent, String name) {
return name;
}
@Override
public String normalize(String name) {
return name;
}
@Override
public boolean isEnableCache(String name) {
return false;
}
}
主类 java: webit.script.happy.console.Main
<!-- lang: java -->
// Copyright (c) 2013, Webit Team. All Rights Reserved.
package webit.script.happy.console;
import java.util.Scanner;
import webit.script.Engine;
import webit.script.exceptions.ParseException;
import webit.script.exceptions.ResourceNotFoundException;
import webit.script.exceptions.ScriptRuntimeException;
/**
*
* @author Zqq
*/
public class Main {
private static Engine engine = Engine.createEngine("happy-console.props");
public static void main(String[] args) {
final Scanner sc = new Scanner(System.in);
printWellcome();
String message;
while (true) {
printCodeRequest();
message = sc.nextLine().trim();
if (message.isEmpty()) {
continue;
}
if (message.equals("exit")) {
break;
}
dealTemplate(message);
}
printGoodBye();
}
private static void dealTemplate(String message) {
try {
println(">>>");
engine.getTemplate(message).merge(System.out);
println();
println();
} catch (ResourceNotFoundException ex) {
println("找不到什么东西了: " + ex.getMessage());
} catch (ParseException ex) {
println("应该是语法错了: " + ex.getMessage());
} catch (ScriptRuntimeException ex) {
println("运行错了: " + ex.getMessage());
} catch (Exception ex) {
println("不知道是什么出错了: " + ex.getMessage());
}
}
private static void printCodeRequest() {
println("<<<");
}
private static void printWellcome() {
println("============================================");
println(" Wellcome Webit Script World \\(^o^)/");
println(" QQ群:302505483");
println("============================================");
}
private static void printGoodBye() {
println("Bye (^_^)∠※");
}
private static void println(String msg) {
System.out.println(msg);
}
private static void println() {
System.out.println();
}
private static void print(String msg) {
System.out.print(msg);
}
}