diff --git a/.gitignore b/.gitignore index dc1d164..d12e4bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ .DS_Store node_modules -resource/cs +test/dev/resource/cs # Editor backup files *.bak diff --git a/Makefile b/Makefile index 0c38f97..13a0b1b 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,6 @@ parse: #jison clearsilver.y clearsilver.l -m amd - parse-debug: @cd parse && \ jison clearsilver.y clearsilver.l --debug true diff --git a/README.md b/README.md index 7677e74..df1d871 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,13 @@ clearsilver template engine with debugger ##usage -1.安装依赖 - - npm -g install express - npm -g install socket.io - -2.使用示例 - - git clone https://github.com/penglei/jencs - cd jencs - node test.js --enable-debugger + Usage: jencs [data] [options] + path clearsilver template file + data hdf data file + Options: + --debug enable debugger [false] + --debug-brk enable debugger and break on first line. [false] + --include the dir of include command [.] + --ignore-whitespace ignore \r\n\t of clearsilver template file [false] diff --git a/bin/jencs b/bin/jencs index d3c5aba..817bf81 100755 --- a/bin/jencs +++ b/bin/jencs @@ -3,30 +3,78 @@ var fs = require('fs'); var path = require('path'); -var CSInterpreter = require('../interpreter'); - +var CSInterpreter = require('jencs'); var Engine = CSInterpreter.Engine; +var AST = CSInterpreter.AST; -var dataHdfFile; -var entryCsFile; +//内容\n\r\t过滤器 +function ContentWhiteFilter(valueStr, astNode){ + return astNode instanceof AST.AST_Content ? valueStr.replace(/[\r\n\t]/g, '') : valueStr; +} -process.argv.forEach(function (val, index, array) { - if (/\.cs$/.test(val)){ - entryCsFile = val; - } else if (/\.hdf$/.test(val)){ - dataHdfFile = val; - } -}); +var opts = require('nomnom') + .script("jencs") + .options({ + "path": { + position: 0, + required: true, + help: "clearsilver template file", + list: false + }, + "data": { + position: 1, + required: false, + help: "hdf data file" + }, + "debug": { + //flag: true, + default: false, + help: "enable debugger" + }, + "debug-brk": { + //flag: true, + default: false, + help: "enable debugger and break on first line." + }, + "include":{ + type:"string", + help: "the dir of include command ", + default: '.' + }, + "ignore-whitespace": { + help: "ignore \\r\\n\\t of clearsilver template file", + default: false + } + }).parse(); + +if (opts["debug-brk"]) opts["debug"] = true; + +var mainCsSource = fs.readFileSync(opts.path, "utf8"); +var csIncludeRoot = path.resolve(opts.include || "."); +if (opts.data){ + var dataSource = fs.readFileSync(path.resolve(opts.data), "utf8"); +} else { + var dataSource = ""; +} -var mainCsSource = fs.readFileSync(entryCsFile, "utf8"); -var dataSource = fs.readFileSync(dataHdfFile, "utf8"); +var csEngine = new Engine(); -var TestCSEngine = new Engine(); +//必须先设置inlcude的回调,否者分析源码时会找不到包含的文件 +csEngine.setLexerInclude(function(filename){ + return fs.readFileSync(path.resolve(csIncludeRoot, filename), "utf8"); +}); + +if (opts["ignore-whitespace"]) csEngine.addOutputFilter(ContentWhiteFilter); + +csEngine.setConfig({ + "debug": opts.debug, + "includeBase": csIncludeRoot//包含文件的起始路径。暂时只给调试器使用这个选项 +}); -TestCSEngine.initEntrySource(mainCsSource); -TestCSEngine.setEndListener(function(){ +csEngine.setEndListener(function(result){ process.stdout.write(this.result); }); -TestCSEngine.run(dataSource); +csEngine.initEntrySource(mainCsSource, opts.path); +csEngine.run(dataSource); diff --git a/interpreter/index.js b/interpreter/index.js index c4840ba..845f200 100644 --- a/interpreter/index.js +++ b/interpreter/index.js @@ -7,7 +7,6 @@ var Executer = require("./executer").Executer; var DebugService = require("./debugger").DebugService; -//放在这里而不是executer里面,是因为executer里的def_execute会被它们用到,这就会形成循环依赖 require("./block"); require("./statement"); require("./expr"); @@ -49,19 +48,6 @@ function Engine(csString){ this._onRenderListeners = []; } -Engine.prototype.request = function(type, val, cb){/* - if (type == "fetchVarValue"){ - var csSubParser = new ClearSilverParser(); - val = ""; - try{ - var valast = csSubParser.parse(source); - } catch(e){ - if (cb(); - } - } - */ -}; - //include在语法分析阶段就完成要方便得多 Engine.prototype._lexInclude = function(includeName) { var self = this; @@ -199,6 +185,8 @@ Engine.prototype.setConfig = function(opts){ Engine.prototype.run = function(hdfData){ if (typeof hdfData == "string"){ hdfData = HDF.parse(hdfData); + } else { + hdfData = {}; } this.result = ""; diff --git a/interpreter/scope.js b/interpreter/scope.js index 18522d8..cd89b41 100644 --- a/interpreter/scope.js +++ b/interpreter/scope.js @@ -116,12 +116,12 @@ Context.prototype = { }, "output": function(str, astNode){ if (str === undefined) return; - try{ + //try{ str = this._runFilters(str, astNode); this._renderSinppetsCallback(str); - } catch(msg){ + //} catch(msg){ //do nothing - } + //} }, "pushEscapeFilter": function(type){ if (type == "html") this._escapeFilters.push(internalHtmlFilter); diff --git a/package.json b/package.json new file mode 100644 index 0000000..c2cf188 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "jencs", + "version": "0.1.0", + "description": "clearsilver render engine, with a debugger", + "keywords": [ + "clearsilver", + "debugger" + ], + "author": { + "name": "soulfree", + "email": "pengleihfut@gmail.com" + }, + "dependencies": { + "nomnom": ">= 1.6.0", + "socket.io" : "~0.9.16", + "express": "~3.4" + }, + "devDependencies": { + }, + "main": "interpreter/index.js", + "bin": { + "jencs": "bin/jencs" + }, + "engines": { + "node": ">= 0.7.0" + } +} diff --git a/resource/test.js b/resource/test.js deleted file mode 100644 index 84b39a5..0000000 --- a/resource/test.js +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env node - -var fs = require('fs'); -var path = require('path'); - -var CSInterpreter = require('../interpreter'); - -var Engine = CSInterpreter.Engine; - -var dataHdfFile; -var entryCsFile; - -process.argv.forEach(function (val, index, array) { - if (/\.cs$/.test(val)){ - entryCsFile = val; - } else if (/\.hdf$/.test(val)){ - dataHdfFile = val; - } -}); - - -var _csRoot = path.resolve(__dirname, './cs/'); -var csIncludeRoot = path.resolve(_csRoot, 'module/'); - -var mainCsSource = fs.readFileSync(entryCsFile, "utf8"); -var dataSource = fs.readFileSync(dataHdfFile, "utf8"); - -var TestCSEngine = new Engine(); - -TestCSEngine.setLexerInclude(function(filename){ - return fs.readFileSync(path.resolve(csIncludeRoot, filename), "utf8"); -}); -TestCSEngine.initEntrySource(mainCsSource); -TestCSEngine.setEndListener(function(){ - process.stdout.write(this.result); -}); - -TestCSEngine.run(dataSource); diff --git a/resource/wupdata.hdf b/resource/wupdata.hdf deleted file mode 120000 index 0715337..0000000 --- a/resource/wupdata.hdf +++ /dev/null @@ -1 +0,0 @@ -wupdata-2.hdf \ No newline at end of file diff --git a/test.js b/test.js deleted file mode 100755 index a916e2d..0000000 --- a/test.js +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env node - -var fs = require('fs'); -var path = require('path'); -var util = require('util'); - -var CSInterpreter = require('./interpreter'); - -var Engine = CSInterpreter.Engine; -var HNode = CSInterpreter.HNode; -var CSValue = CSInterpreter.CSValue; -var AST = CSInterpreter.AST; - -var opts = require('nomnom') - .option("enable-debugger", { - abbr: 'csd', - flag: true, - default: false, - help: 'enable cs debugger' - }) - .parse(); - -opts.enableDebugger = !!opts["enable-debugger"]; - -//设置内容\n\r\t过滤器 -function ContentWhiteFilter(valueStr, astNode){ - return astNode instanceof AST.AST_Content ? valueStr.replace(/[\r\n\t]/g, '') : valueStr; -} - -if (1){ - var _csRoot = path.resolve(__dirname, './resource/cs/'); - var csIncludeRoot = path.resolve(_csRoot, 'module/'); - var entryCsFile = path.resolve(_csRoot, "wupmain.cs"); - var dataHdfFile = path.resolve(__dirname, "./resource/wupdata.hdf"); -} else { - var csIncludeRoot = path.resolve(__dirname, './unit/interpreter/'); - var entryCsFile = path.resolve(__dirname, "./unit/interpreter/test.cs"); - var dataHdfFile = path.resolve(__dirname, "./unit/interpreter/test.hdf"); -} - - -var mainCsSource = fs.readFileSync(entryCsFile, "utf8"); -var dataSource = fs.readFileSync(dataHdfFile, "utf8"); - - -/*最簡單的使用方式,無法添加其他接口 -CSInterpreter.render(mainCsSource, dataSource, { - "entryName": entryCsFile -}); -*/ - -var TestCSEngine = new Engine(); -//必须先设置inlcude的回调,否者分析源码时会找不到 -TestCSEngine.setLexerInclude(function(filename){ - //console.log(filename); - return fs.readFileSync(path.resolve(csIncludeRoot, filename), "utf8"); -}); -TestCSEngine.setConfig({ - "debug": opts.enableDebugger, - "includeBase": csIncludeRoot -}); - -//TestCSEngine.addOutputFilter(ContentWhiteFilter); -TestCSEngine.initEntrySource(mainCsSource/*, entryCsFile*/); - -TestCSEngine.onRender(function(snippet){ -}); - -TestCSEngine.setEndListener(function(result){ - - console.log(this.result); - //process.stdout.write(this.result); - - //console.log(this.dumpData()); - //process.stdout.write(this.dumpData()); - -}); - -TestCSEngine.run(dataSource); diff --git a/unit/interpreter/dev_debugger_t1.cs b/test/dev/dev_debugger_t1.cs similarity index 100% rename from unit/interpreter/dev_debugger_t1.cs rename to test/dev/dev_debugger_t1.cs diff --git a/unit/interpreter/dev_loop_block.cs b/test/dev/dev_loop_block.cs similarity index 100% rename from unit/interpreter/dev_loop_block.cs rename to test/dev/dev_loop_block.cs diff --git a/resource/.diff b/test/dev/resource/.diff similarity index 100% rename from resource/.diff rename to test/dev/resource/.diff diff --git a/test/dev/resource/Makefile b/test/dev/resource/Makefile new file mode 100644 index 0000000..b62e02e --- /dev/null +++ b/test/dev/resource/Makefile @@ -0,0 +1,23 @@ +all:test_my + +MY_TESTS_DATA=wupdata-1.hdf wupdata-2.hdf +test_my: + @echo "Running wup cs tests"; + @failed=0;\ + for wupdata in $(MY_TESTS_DATA); do \ + jencs cs/wupmain.cs $$wupdata --include=./cs/module > $$wupdata.out.html; \ + diff $$wupdata.out.html $$wupdata.gold.html > $$wupdata.diff; \ + return_code=$$?; \ + if [ $$return_code -ne 0 ]; then \ + echo "$$wupdata" test failed!; \ + failed=1; \ + else \ + rm -rf $$wupdata.out.html; \ + rm -rf $$wupdata.diff; \ + fi; \ + done; \ + if [ $$failed -eq 1 ]; then \ + echo "Test wupdata Failed!"; \ + else \ + echo "All wupdata test passed!"; \ + fi; diff --git a/resource/gold.feed-2.hdf b/test/dev/resource/gold.feed-2.hdf similarity index 100% rename from resource/gold.feed-2.hdf rename to test/dev/resource/gold.feed-2.hdf diff --git a/resource/gold.feed-2.html b/test/dev/resource/gold.feed-2.html similarity index 100% rename from resource/gold.feed-2.html rename to test/dev/resource/gold.feed-2.html diff --git a/resource/gold.feed.hdf b/test/dev/resource/gold.feed.hdf similarity index 100% rename from resource/gold.feed.hdf rename to test/dev/resource/gold.feed.hdf diff --git a/resource/gold.feed.html b/test/dev/resource/gold.feed.html similarity index 100% rename from resource/gold.feed.html rename to test/dev/resource/gold.feed.html diff --git a/resource/wupdata-1.hdf b/test/dev/resource/wupdata-1.hdf similarity index 100% rename from resource/wupdata-1.hdf rename to test/dev/resource/wupdata-1.hdf diff --git a/resource/wupdata-1.hdf.gold.hdf b/test/dev/resource/wupdata-1.hdf.gold.hdf similarity index 100% rename from resource/wupdata-1.hdf.gold.hdf rename to test/dev/resource/wupdata-1.hdf.gold.hdf diff --git a/resource/wupdata-1.hdf.gold.html b/test/dev/resource/wupdata-1.hdf.gold.html similarity index 100% rename from resource/wupdata-1.hdf.gold.html rename to test/dev/resource/wupdata-1.hdf.gold.html diff --git a/resource/wupdata-2.hdf b/test/dev/resource/wupdata-2.hdf similarity index 100% rename from resource/wupdata-2.hdf rename to test/dev/resource/wupdata-2.hdf diff --git a/resource/wupdata-2.hdf.gold.hdf b/test/dev/resource/wupdata-2.hdf.gold.hdf similarity index 100% rename from resource/wupdata-2.hdf.gold.hdf rename to test/dev/resource/wupdata-2.hdf.gold.hdf diff --git a/resource/wupdata-2.hdf.gold.html b/test/dev/resource/wupdata-2.hdf.gold.html similarity index 100% rename from resource/wupdata-2.hdf.gold.html rename to test/dev/resource/wupdata-2.hdf.gold.html diff --git a/unit/interpreter/test.cs b/test/dev/test.cs similarity index 93% rename from unit/interpreter/test.cs rename to test/dev/test.cs index e7aedda..93cd2c3 100644 --- a/unit/interpreter/test.cs +++ b/test/dev/test.cs @@ -26,7 +26,7 @@ -----if------- - +sss"?> diff --git a/unit/interpreter/test.hdf b/test/dev/test.hdf similarity index 100% rename from unit/interpreter/test.hdf rename to test/dev/test.hdf diff --git a/unit/interpreter/test_d_each.cs b/test/dev/test_d_each.cs similarity index 100% rename from unit/interpreter/test_d_each.cs rename to test/dev/test_d_each.cs diff --git a/unit/interpreter/test_d_if.cs b/test/dev/test_d_if.cs similarity index 100% rename from unit/interpreter/test_d_if.cs rename to test/dev/test_d_if.cs diff --git a/unit/interpreter/test_d_loop.cs b/test/dev/test_d_loop.cs similarity index 100% rename from unit/interpreter/test_d_loop.cs rename to test/dev/test_d_loop.cs diff --git a/unit/interpreter/test_d_macrodef.cs b/test/dev/test_d_macrodef.cs similarity index 100% rename from unit/interpreter/test_d_macrodef.cs rename to test/dev/test_d_macrodef.cs diff --git a/test/hdf/Makefile b/test/hdf/Makefile new file mode 100644 index 0000000..589db94 --- /dev/null +++ b/test/hdf/Makefile @@ -0,0 +1,2 @@ +all: + node test diff --git a/test/hdf/test.hdf b/test/hdf/test.hdf new file mode 100644 index 0000000..b095257 --- /dev/null +++ b/test/hdf/test.hdf @@ -0,0 +1,66 @@ +a.b.c=a.b. c ? is ok? +c << EOM +hello, world, +i love program +EOM + +b=3 + +Page { + Menu { + Name = Home + +affafa= error, shouldn't see me + } +} + +title=hello, world + +age.Name = My Index +Page.URL = /myindex.html +Page.Menu.0 = Home +Page.Menu.1 = Preferences +Page.Menu.2 = Help +Page.Menu.3 = Support + +Page { + Menu.xx.yy { + 0 { + Name = Home + } + } + Menu { + 0 { + URL =www.google.com.hk + } + } +} + +Page { + Menu { + 0 { + name =google + URL =http://www.google.com.hk/ + } + 19 { + Name = Home + URL = /google.com + } + 1 { + Name = Preferences + URL = /prefs + } + 2 { + Name = Help + URL = /help.html + } + 3 { + Name = Support + URL = /feedback/ + } + } + content << AAA + fffkslaf +AAA +} + diff --git a/test/hdf/test.js b/test/hdf/test.js new file mode 100644 index 0000000..3904fc0 --- /dev/null +++ b/test/hdf/test.js @@ -0,0 +1,8 @@ +var fs = require("fs"), + path = require("path"), + hdfParser = require("../../interpreter/hdf"); + +var content = fs.readFileSync("test.hdf"); + +var r = hdfParser.parse(content); +console.log(hdfParser.dumpHdf(r)); diff --git a/unit/interpreter/official_test/Makefile b/test/interpreter/Makefile similarity index 65% rename from unit/interpreter/official_test/Makefile rename to test/interpreter/Makefile index 7687b01..111ec36 100644 --- a/unit/interpreter/official_test/Makefile +++ b/test/interpreter/Makefile @@ -1,6 +1,6 @@ -all: test test_my +.PHONY: test -#../../../bin/jencs test.hdf test.cs +all: test #test13 lvar #tet16 lvar and in each @@ -29,7 +29,7 @@ test: $(CS_TESTS) @failed=0; \ for test in $(CS_TESTS); do \ echo "Parsing $$test" > $$test.out; \ - ../../../bin/jencs test.hdf $$test >> $$test.out; \ + jencs $$test test.hdf >> $$test.out; \ diff $$test.out $$test.gold > $$test.diff; \ return_code=$$?; \ if [ $$return_code -ne 0 ]; then \ @@ -51,26 +51,3 @@ test: $(CS_TESTS) #可以先跑一遍拿到diff的返回值,再把有错的对比打出来 #diff $$test.out $$test.gold 2>&1 > /dev/null; \ #diff $$test.gold $$test.out > $$test.err; \ - -MY_TESTS_DATA=wupdata-1.hdf wupdata-2.hdf -test_my: - @echo "Running wup cs tests" - @cd ../../../resource/; \ - failed=0;\ - for wupdata in $(MY_TESTS_DATA); do \ - node test.js $$wupdata cs/wupmain.cs > $$wupdata.out.html; \ - diff $$wupdata.out.html $$wupdata.gold.html > $$wupdata.diff; \ - return_code=$$?; \ - if [ $$return_code -ne 0 ]; then \ - echo "$$wupdata" test failed!; \ - failed=1; \ - else \ - rm -rf $$wupdata.out.html; \ - rm -rf $$wupdata.diff; \ - fi; \ - done; \ - if [ $$failed -eq 1 ]; then \ - echo "Test wupdata Failed!"; \ - else \ - echo "All wupdata test passed!"; \ - fi; diff --git a/unit/interpreter/official_test/Makefile.official b/test/interpreter/Makefile.official similarity index 100% rename from unit/interpreter/official_test/Makefile.official rename to test/interpreter/Makefile.official diff --git a/unit/interpreter/official_test/cs.c b/test/interpreter/cs.c similarity index 100% rename from unit/interpreter/official_test/cs.c rename to test/interpreter/cs.c diff --git a/unit/interpreter/official_test/cs.h b/test/interpreter/cs.h similarity index 100% rename from unit/interpreter/official_test/cs.h rename to test/interpreter/cs.h diff --git a/unit/interpreter/official_test/csdump.c b/test/interpreter/csdump.c similarity index 100% rename from unit/interpreter/official_test/csdump.c rename to test/interpreter/csdump.c diff --git a/unit/interpreter/official_test/csparse.c b/test/interpreter/csparse.c similarity index 100% rename from unit/interpreter/official_test/csparse.c rename to test/interpreter/csparse.c diff --git a/unit/interpreter/official_test/cstest.c b/test/interpreter/cstest.c similarity index 100% rename from unit/interpreter/official_test/cstest.c rename to test/interpreter/cstest.c diff --git a/unit/interpreter/official_test/test.cs b/test/interpreter/test.cs similarity index 100% rename from unit/interpreter/official_test/test.cs rename to test/interpreter/test.cs diff --git a/unit/interpreter/official_test/test.cs.gold b/test/interpreter/test.cs.gold similarity index 100% rename from unit/interpreter/official_test/test.cs.gold rename to test/interpreter/test.cs.gold diff --git a/unit/interpreter/official_test/test.hdf b/test/interpreter/test.hdf similarity index 100% rename from unit/interpreter/official_test/test.hdf rename to test/interpreter/test.hdf diff --git a/unit/interpreter/official_test/test10.cs b/test/interpreter/test10.cs similarity index 100% rename from unit/interpreter/official_test/test10.cs rename to test/interpreter/test10.cs diff --git a/unit/interpreter/official_test/test10.cs.gold b/test/interpreter/test10.cs.gold similarity index 100% rename from unit/interpreter/official_test/test10.cs.gold rename to test/interpreter/test10.cs.gold diff --git a/unit/interpreter/official_test/test11.cs b/test/interpreter/test11.cs similarity index 100% rename from unit/interpreter/official_test/test11.cs rename to test/interpreter/test11.cs diff --git a/unit/interpreter/official_test/test11.cs.gold b/test/interpreter/test11.cs.gold similarity index 100% rename from unit/interpreter/official_test/test11.cs.gold rename to test/interpreter/test11.cs.gold diff --git a/unit/interpreter/official_test/test12.cs b/test/interpreter/test12.cs similarity index 100% rename from unit/interpreter/official_test/test12.cs rename to test/interpreter/test12.cs diff --git a/unit/interpreter/official_test/test12.cs.gold b/test/interpreter/test12.cs.gold similarity index 100% rename from unit/interpreter/official_test/test12.cs.gold rename to test/interpreter/test12.cs.gold diff --git a/unit/interpreter/official_test/test13.cs b/test/interpreter/test13.cs similarity index 100% rename from unit/interpreter/official_test/test13.cs rename to test/interpreter/test13.cs diff --git a/unit/interpreter/official_test/test13.cs.gold b/test/interpreter/test13.cs.gold similarity index 100% rename from unit/interpreter/official_test/test13.cs.gold rename to test/interpreter/test13.cs.gold diff --git a/unit/interpreter/official_test/test14.cs b/test/interpreter/test14.cs similarity index 100% rename from unit/interpreter/official_test/test14.cs rename to test/interpreter/test14.cs diff --git a/unit/interpreter/official_test/test14.cs.gold b/test/interpreter/test14.cs.gold similarity index 100% rename from unit/interpreter/official_test/test14.cs.gold rename to test/interpreter/test14.cs.gold diff --git a/unit/interpreter/official_test/test15.cs b/test/interpreter/test15.cs similarity index 100% rename from unit/interpreter/official_test/test15.cs rename to test/interpreter/test15.cs diff --git a/unit/interpreter/official_test/test15.cs.gold b/test/interpreter/test15.cs.gold similarity index 100% rename from unit/interpreter/official_test/test15.cs.gold rename to test/interpreter/test15.cs.gold diff --git a/unit/interpreter/official_test/test16.cs b/test/interpreter/test16.cs similarity index 100% rename from unit/interpreter/official_test/test16.cs rename to test/interpreter/test16.cs diff --git a/unit/interpreter/official_test/test16.cs.gold b/test/interpreter/test16.cs.gold similarity index 100% rename from unit/interpreter/official_test/test16.cs.gold rename to test/interpreter/test16.cs.gold diff --git a/unit/interpreter/official_test/test17.cs b/test/interpreter/test17.cs similarity index 100% rename from unit/interpreter/official_test/test17.cs rename to test/interpreter/test17.cs diff --git a/unit/interpreter/official_test/test17.cs.gold b/test/interpreter/test17.cs.gold similarity index 100% rename from unit/interpreter/official_test/test17.cs.gold rename to test/interpreter/test17.cs.gold diff --git a/unit/interpreter/official_test/test18.cs b/test/interpreter/test18.cs similarity index 100% rename from unit/interpreter/official_test/test18.cs rename to test/interpreter/test18.cs diff --git a/unit/interpreter/official_test/test18.cs.gold b/test/interpreter/test18.cs.gold similarity index 100% rename from unit/interpreter/official_test/test18.cs.gold rename to test/interpreter/test18.cs.gold diff --git a/unit/interpreter/official_test/test19.cs b/test/interpreter/test19.cs similarity index 100% rename from unit/interpreter/official_test/test19.cs rename to test/interpreter/test19.cs diff --git a/unit/interpreter/official_test/test19.cs.gold b/test/interpreter/test19.cs.gold similarity index 100% rename from unit/interpreter/official_test/test19.cs.gold rename to test/interpreter/test19.cs.gold diff --git a/unit/interpreter/official_test/test2.cs b/test/interpreter/test2.cs similarity index 100% rename from unit/interpreter/official_test/test2.cs rename to test/interpreter/test2.cs diff --git a/unit/interpreter/official_test/test2.cs.gold b/test/interpreter/test2.cs.gold similarity index 100% rename from unit/interpreter/official_test/test2.cs.gold rename to test/interpreter/test2.cs.gold diff --git a/unit/interpreter/official_test/test3.cs b/test/interpreter/test3.cs similarity index 100% rename from unit/interpreter/official_test/test3.cs rename to test/interpreter/test3.cs diff --git a/unit/interpreter/official_test/test3.cs.gold b/test/interpreter/test3.cs.gold similarity index 100% rename from unit/interpreter/official_test/test3.cs.gold rename to test/interpreter/test3.cs.gold diff --git a/unit/interpreter/official_test/test4.cs b/test/interpreter/test4.cs similarity index 100% rename from unit/interpreter/official_test/test4.cs rename to test/interpreter/test4.cs diff --git a/unit/interpreter/official_test/test4.cs.gold b/test/interpreter/test4.cs.gold similarity index 100% rename from unit/interpreter/official_test/test4.cs.gold rename to test/interpreter/test4.cs.gold diff --git a/unit/interpreter/official_test/test5.cs b/test/interpreter/test5.cs similarity index 100% rename from unit/interpreter/official_test/test5.cs rename to test/interpreter/test5.cs diff --git a/unit/interpreter/official_test/test5.cs.gold b/test/interpreter/test5.cs.gold similarity index 100% rename from unit/interpreter/official_test/test5.cs.gold rename to test/interpreter/test5.cs.gold diff --git a/unit/interpreter/official_test/test6.cs b/test/interpreter/test6.cs similarity index 100% rename from unit/interpreter/official_test/test6.cs rename to test/interpreter/test6.cs diff --git a/unit/interpreter/official_test/test6.cs.gold b/test/interpreter/test6.cs.gold similarity index 100% rename from unit/interpreter/official_test/test6.cs.gold rename to test/interpreter/test6.cs.gold diff --git a/unit/interpreter/official_test/test7.cs b/test/interpreter/test7.cs similarity index 100% rename from unit/interpreter/official_test/test7.cs rename to test/interpreter/test7.cs diff --git a/unit/interpreter/official_test/test7.cs.gold b/test/interpreter/test7.cs.gold similarity index 100% rename from unit/interpreter/official_test/test7.cs.gold rename to test/interpreter/test7.cs.gold diff --git a/unit/interpreter/official_test/test8.cs b/test/interpreter/test8.cs similarity index 100% rename from unit/interpreter/official_test/test8.cs rename to test/interpreter/test8.cs diff --git a/unit/interpreter/official_test/test8.cs.gold b/test/interpreter/test8.cs.gold similarity index 100% rename from unit/interpreter/official_test/test8.cs.gold rename to test/interpreter/test8.cs.gold diff --git a/unit/interpreter/official_test/test9.cs b/test/interpreter/test9.cs similarity index 100% rename from unit/interpreter/official_test/test9.cs rename to test/interpreter/test9.cs diff --git a/unit/interpreter/official_test/test9.cs.gold b/test/interpreter/test9.cs.gold similarity index 100% rename from unit/interpreter/official_test/test9.cs.gold rename to test/interpreter/test9.cs.gold diff --git a/unit/interpreter/official_test/test_abs_max_min.cs b/test/interpreter/test_abs_max_min.cs similarity index 100% rename from unit/interpreter/official_test/test_abs_max_min.cs rename to test/interpreter/test_abs_max_min.cs diff --git a/unit/interpreter/official_test/test_abs_max_min.cs.gold b/test/interpreter/test_abs_max_min.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_abs_max_min.cs.gold rename to test/interpreter/test_abs_max_min.cs.gold diff --git a/unit/interpreter/official_test/test_cgi_escape.cs b/test/interpreter/test_cgi_escape.cs similarity index 100% rename from unit/interpreter/official_test/test_cgi_escape.cs rename to test/interpreter/test_cgi_escape.cs diff --git a/unit/interpreter/official_test/test_chuck.cs b/test/interpreter/test_chuck.cs similarity index 100% rename from unit/interpreter/official_test/test_chuck.cs rename to test/interpreter/test_chuck.cs diff --git a/unit/interpreter/official_test/test_chuck.cs.gold b/test/interpreter/test_chuck.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_chuck.cs.gold rename to test/interpreter/test_chuck.cs.gold diff --git a/unit/interpreter/official_test/test_comma.cs b/test/interpreter/test_comma.cs similarity index 100% rename from unit/interpreter/official_test/test_comma.cs rename to test/interpreter/test_comma.cs diff --git a/unit/interpreter/official_test/test_comma.cs.gold b/test/interpreter/test_comma.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_comma.cs.gold rename to test/interpreter/test_comma.cs.gold diff --git a/unit/interpreter/official_test/test_crc.cs b/test/interpreter/test_crc.cs similarity index 100% rename from unit/interpreter/official_test/test_crc.cs rename to test/interpreter/test_crc.cs diff --git a/unit/interpreter/official_test/test_crc.cs.gold b/test/interpreter/test_crc.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_crc.cs.gold rename to test/interpreter/test_crc.cs.gold diff --git a/unit/interpreter/official_test/test_each_array.cs b/test/interpreter/test_each_array.cs similarity index 100% rename from unit/interpreter/official_test/test_each_array.cs rename to test/interpreter/test_each_array.cs diff --git a/unit/interpreter/official_test/test_each_array.cs.gold b/test/interpreter/test_each_array.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_each_array.cs.gold rename to test/interpreter/test_each_array.cs.gold diff --git a/unit/interpreter/official_test/test_escape.cs b/test/interpreter/test_escape.cs similarity index 100% rename from unit/interpreter/official_test/test_escape.cs rename to test/interpreter/test_escape.cs diff --git a/unit/interpreter/official_test/test_escape.cs.gold b/test/interpreter/test_escape.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_escape.cs.gold rename to test/interpreter/test_escape.cs.gold diff --git a/unit/interpreter/official_test/test_exists.cs b/test/interpreter/test_exists.cs similarity index 100% rename from unit/interpreter/official_test/test_exists.cs rename to test/interpreter/test_exists.cs diff --git a/unit/interpreter/official_test/test_first_last.cs b/test/interpreter/test_first_last.cs similarity index 100% rename from unit/interpreter/official_test/test_first_last.cs rename to test/interpreter/test_first_last.cs diff --git a/unit/interpreter/official_test/test_first_last.cs.gold b/test/interpreter/test_first_last.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_first_last.cs.gold rename to test/interpreter/test_first_last.cs.gold diff --git a/unit/interpreter/official_test/test_func.cs b/test/interpreter/test_func.cs similarity index 100% rename from unit/interpreter/official_test/test_func.cs rename to test/interpreter/test_func.cs diff --git a/unit/interpreter/official_test/test_func.cs.gold b/test/interpreter/test_func.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_func.cs.gold rename to test/interpreter/test_func.cs.gold diff --git a/unit/interpreter/official_test/test_iter.cs b/test/interpreter/test_iter.cs similarity index 100% rename from unit/interpreter/official_test/test_iter.cs rename to test/interpreter/test_iter.cs diff --git a/unit/interpreter/official_test/test_iter.cs.gold b/test/interpreter/test_iter.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_iter.cs.gold rename to test/interpreter/test_iter.cs.gold diff --git a/unit/interpreter/official_test/test_joo.cs b/test/interpreter/test_joo.cs similarity index 100% rename from unit/interpreter/official_test/test_joo.cs rename to test/interpreter/test_joo.cs diff --git a/unit/interpreter/official_test/test_joo.cs.gold b/test/interpreter/test_joo.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_joo.cs.gold rename to test/interpreter/test_joo.cs.gold diff --git a/unit/interpreter/official_test/test_loop.cs b/test/interpreter/test_loop.cs similarity index 87% rename from unit/interpreter/official_test/test_loop.cs rename to test/interpreter/test_loop.cs index ef1bfd7..34929b3 100644 --- a/unit/interpreter/official_test/test_loop.cs +++ b/test/interpreter/test_loop.cs @@ -7,7 +7,7 @@ --------loop()-------- - + @@ -24,7 +24,7 @@ 3.--------loop()-------- - + ============negative step============== diff --git a/unit/interpreter/official_test/test_loop.cs.gold b/test/interpreter/test_loop.cs.gold similarity index 96% rename from unit/interpreter/official_test/test_loop.cs.gold rename to test/interpreter/test_loop.cs.gold index 897b6f0..077ed5d 100644 --- a/unit/interpreter/official_test/test_loop.cs.gold +++ b/test/interpreter/test_loop.cs.gold @@ -8,19 +8,19 @@ Parsing test_loop.cs --------loop(0)-------- - 0 + --------loop(1)-------- - 1 + --------loop(2)-------- - 2 + --------loop(3)-------- - 3 + 3 diff --git a/unit/interpreter/official_test/test_macro_set.cs b/test/interpreter/test_macro_set.cs similarity index 100% rename from unit/interpreter/official_test/test_macro_set.cs rename to test/interpreter/test_macro_set.cs diff --git a/unit/interpreter/official_test/test_macro_set.cs.gold b/test/interpreter/test_macro_set.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_macro_set.cs.gold rename to test/interpreter/test_macro_set.cs.gold diff --git a/unit/interpreter/official_test/test_name.cs b/test/interpreter/test_name.cs similarity index 100% rename from unit/interpreter/official_test/test_name.cs rename to test/interpreter/test_name.cs diff --git a/unit/interpreter/official_test/test_name.cs.gold b/test/interpreter/test_name.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_name.cs.gold rename to test/interpreter/test_name.cs.gold diff --git a/unit/interpreter/official_test/test_numbers.cs b/test/interpreter/test_numbers.cs similarity index 100% rename from unit/interpreter/official_test/test_numbers.cs rename to test/interpreter/test_numbers.cs diff --git a/unit/interpreter/official_test/test_numbers.cs.gold b/test/interpreter/test_numbers.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_numbers.cs.gold rename to test/interpreter/test_numbers.cs.gold diff --git a/unit/interpreter/official_test/test_paren.cs b/test/interpreter/test_paren.cs similarity index 100% rename from unit/interpreter/official_test/test_paren.cs rename to test/interpreter/test_paren.cs diff --git a/unit/interpreter/official_test/test_paren.cs.gold b/test/interpreter/test_paren.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_paren.cs.gold rename to test/interpreter/test_paren.cs.gold diff --git a/unit/interpreter/official_test/test_setorder.cs b/test/interpreter/test_setorder.cs similarity index 100% rename from unit/interpreter/official_test/test_setorder.cs rename to test/interpreter/test_setorder.cs diff --git a/unit/interpreter/official_test/test_setorder.cs.gold b/test/interpreter/test_setorder.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_setorder.cs.gold rename to test/interpreter/test_setorder.cs.gold diff --git a/unit/interpreter/official_test/test_splice.cs b/test/interpreter/test_splice.cs similarity index 100% rename from unit/interpreter/official_test/test_splice.cs rename to test/interpreter/test_splice.cs diff --git a/unit/interpreter/official_test/test_splice.cs.gold b/test/interpreter/test_splice.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_splice.cs.gold rename to test/interpreter/test_splice.cs.gold diff --git a/unit/interpreter/official_test/test_str_find.cs b/test/interpreter/test_str_find.cs similarity index 100% rename from unit/interpreter/official_test/test_str_find.cs rename to test/interpreter/test_str_find.cs diff --git a/unit/interpreter/official_test/test_str_find.cs.gold b/test/interpreter/test_str_find.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_str_find.cs.gold rename to test/interpreter/test_str_find.cs.gold diff --git a/unit/interpreter/official_test/test_tag.cs b/test/interpreter/test_tag.cs similarity index 100% rename from unit/interpreter/official_test/test_tag.cs rename to test/interpreter/test_tag.cs diff --git a/unit/interpreter/official_test/test_tag.cs.gold b/test/interpreter/test_tag.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_tag.cs.gold rename to test/interpreter/test_tag.cs.gold diff --git a/unit/interpreter/official_test/test_tag.hdf b/test/interpreter/test_tag.hdf similarity index 100% rename from unit/interpreter/official_test/test_tag.hdf rename to test/interpreter/test_tag.hdf diff --git a/unit/interpreter/official_test/test_trak1.cs b/test/interpreter/test_trak1.cs similarity index 100% rename from unit/interpreter/official_test/test_trak1.cs rename to test/interpreter/test_trak1.cs diff --git a/unit/interpreter/official_test/test_trak1.cs.gold b/test/interpreter/test_trak1.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_trak1.cs.gold rename to test/interpreter/test_trak1.cs.gold diff --git a/unit/interpreter/official_test/test_url_validate.cs b/test/interpreter/test_url_validate.cs similarity index 100% rename from unit/interpreter/official_test/test_url_validate.cs rename to test/interpreter/test_url_validate.cs diff --git a/unit/interpreter/official_test/test_url_validate.hdf b/test/interpreter/test_url_validate.hdf similarity index 100% rename from unit/interpreter/official_test/test_url_validate.hdf rename to test/interpreter/test_url_validate.hdf diff --git a/unit/interpreter/official_test/test_uvar.cs b/test/interpreter/test_uvar.cs similarity index 100% rename from unit/interpreter/official_test/test_uvar.cs rename to test/interpreter/test_uvar.cs diff --git a/unit/interpreter/official_test/test_uvar.cs.gold b/test/interpreter/test_uvar.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_uvar.cs.gold rename to test/interpreter/test_uvar.cs.gold diff --git a/unit/interpreter/official_test/test_var.cs b/test/interpreter/test_var.cs similarity index 100% rename from unit/interpreter/official_test/test_var.cs rename to test/interpreter/test_var.cs diff --git a/unit/interpreter/official_test/test_var.cs.gold b/test/interpreter/test_var.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_var.cs.gold rename to test/interpreter/test_var.cs.gold diff --git a/unit/interpreter/official_test/test_with.cs b/test/interpreter/test_with.cs similarity index 100% rename from unit/interpreter/official_test/test_with.cs rename to test/interpreter/test_with.cs diff --git a/unit/interpreter/official_test/test_with.cs.gold b/test/interpreter/test_with.cs.gold similarity index 100% rename from unit/interpreter/official_test/test_with.cs.gold rename to test/interpreter/test_with.cs.gold diff --git a/unit/hdf b/unit/hdf deleted file mode 160000 index 5feed55..0000000 --- a/unit/hdf +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5feed5535674fb68d67e60487c99568be54d3b28 diff --git a/unit/interpreter/official_test/.diff b/unit/interpreter/official_test/.diff deleted file mode 100644 index e69de29..0000000 diff --git a/unit/interpreter/official_test/test_loop.cs.diff b/unit/interpreter/official_test/test_loop.cs.diff deleted file mode 100644 index 3509c17..0000000 --- a/unit/interpreter/official_test/test_loop.cs.diff +++ /dev/null @@ -1,16 +0,0 @@ -11c11 -< 1 ---- -> 0 -15c15 -< 2 ---- -> 1 -19c19 -< 3 ---- -> 2 -23c23 -< 4 ---- -> 3 diff --git a/unit/interpreter/official_test/test_loop.cs.out b/unit/interpreter/official_test/test_loop.cs.out deleted file mode 100644 index 2fc14bc..0000000 --- a/unit/interpreter/official_test/test_loop.cs.out +++ /dev/null @@ -1,68 +0,0 @@ -Parsing test_loop.cs -================================ - - - - -3 - - - --------loop(0)-------- - 1 - - - --------loop(1)-------- - 2 - - - --------loop(2)-------- - 3 - - - --------loop(3)-------- - 4 - - -3 - -==============step times test============== - - 1.--------loop(0)-------- - - 1.--------loop(1)-------- - - 1.--------loop(2)-------- - - 1.--------loop(3)-------- - - - - - 2.--------loop(2)-------- - - - 2.--------loop(3)-------- - - - 2.--------loop(4)-------- - - - 2.--------loop(5)-------- - - - - 3.--------loop(0)-------- - - - 3.--------loop(1)-------- - - - 3.--------loop(2)-------- - - - 3.--------loop(3)-------- - - - -============negative step============== - diff --git a/unit/interpreter/official_test/wupdata-1.hdf.out.html b/unit/interpreter/official_test/wupdata-1.hdf.out.html deleted file mode 100644 index e69de29..0000000 diff --git a/unit/interpreter/official_test/wupdata-2.hdf.out.html b/unit/interpreter/official_test/wupdata-2.hdf.out.html deleted file mode 100644 index e69de29..0000000 diff --git a/unit/interpreter/test_.cs b/unit/interpreter/test_.cs deleted file mode 100644 index 7a0c5a9..0000000 --- a/unit/interpreter/test_.cs +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - ------if------- -