Move ReaderExp to its own file
This commit is contained in:
@@ -6,6 +6,7 @@ import haxe.macro.PositionTools;
|
||||
import hscript.Parser;
|
||||
import hscript.Interp;
|
||||
import kiss.Reader;
|
||||
import kiss.ReaderExp;
|
||||
import kiss.CompileError;
|
||||
import kiss.Kiss;
|
||||
import kiss.SpecialForms;
|
||||
@@ -246,7 +247,7 @@ class Helpers {
|
||||
interp.variables.set("ReaderExp", ReaderExpDef);
|
||||
interp.variables.set("nextToken", Reader.nextToken.bind(_, "a token"));
|
||||
interp.variables.set("kiss", {
|
||||
Reader: {
|
||||
ReaderExp: {
|
||||
ReaderExpDef: ReaderExpDef
|
||||
},
|
||||
Operand: {
|
||||
|
@@ -7,6 +7,7 @@ import haxe.macro.Expr;
|
||||
import haxe.io.Path;
|
||||
import kiss.Stream;
|
||||
import kiss.Reader;
|
||||
import kiss.ReaderExp;
|
||||
import kiss.FieldForms;
|
||||
import kiss.SpecialForms;
|
||||
import kiss.Macros;
|
||||
|
@@ -3,6 +3,7 @@ package kiss;
|
||||
import haxe.macro.Expr;
|
||||
import haxe.macro.Context;
|
||||
import kiss.Reader;
|
||||
import kiss.ReaderExp;
|
||||
import kiss.Kiss;
|
||||
import kiss.CompileError;
|
||||
|
||||
|
@@ -3,6 +3,7 @@ package kiss;
|
||||
using Std;
|
||||
|
||||
import kiss.Operand;
|
||||
import kiss.ReaderExp;
|
||||
import haxe.ds.Either;
|
||||
import haxe.Constraints;
|
||||
#if (!macro && hxnodejs)
|
||||
|
@@ -3,16 +3,12 @@ package kiss;
|
||||
import haxe.ds.Option;
|
||||
import kiss.Stream;
|
||||
import kiss.Kiss;
|
||||
import kiss.ReaderExp;
|
||||
|
||||
using kiss.Reader;
|
||||
using kiss.Stream;
|
||||
using kiss.Helpers;
|
||||
|
||||
typedef ReaderExp = {
|
||||
pos:Position,
|
||||
def:ReaderExpDef
|
||||
};
|
||||
|
||||
class UnmatchedBracketSignal {
|
||||
public var type:String;
|
||||
public var position:Stream.Position;
|
||||
@@ -23,21 +19,6 @@ class UnmatchedBracketSignal {
|
||||
}
|
||||
}
|
||||
|
||||
enum ReaderExpDef {
|
||||
CallExp(func:ReaderExp, args:Array<ReaderExp>); // (f a1 a2...)
|
||||
ListExp(exps:Array<ReaderExp>); // [v1 v2 v3]
|
||||
StrExp(s:String); // "literal"
|
||||
Symbol(name:String); // s
|
||||
RawHaxe(code:String); // #| haxeCode() |#
|
||||
TypedExp(path:String, exp:ReaderExp); // :type [exp]
|
||||
MetaExp(meta:String, exp:ReaderExp); // &meta [exp]
|
||||
FieldExp(field:String, exp:ReaderExp); // .field [exp]
|
||||
KeyValueExp(key:ReaderExp, value:ReaderExp); // =>key value
|
||||
Quasiquote(exp:ReaderExp); // `[exp]
|
||||
Unquote(exp:ReaderExp); // ,[exp]
|
||||
UnquoteList(exp:ReaderExp); // ,@[exp]
|
||||
}
|
||||
|
||||
typedef ReadFunction = (Stream, KissState) -> Null<ReaderExpDef>;
|
||||
typedef ReadTable = Map<String, ReadFunction>;
|
||||
|
||||
|
23
src/kiss/ReaderExp.hx
Normal file
23
src/kiss/ReaderExp.hx
Normal file
@@ -0,0 +1,23 @@
|
||||
package kiss;
|
||||
|
||||
import kiss.Stream;
|
||||
|
||||
typedef ReaderExp = {
|
||||
pos:Position,
|
||||
def:ReaderExpDef
|
||||
};
|
||||
|
||||
enum ReaderExpDef {
|
||||
CallExp(func:ReaderExp, args:Array<ReaderExp>); // (f a1 a2...)
|
||||
ListExp(exps:Array<ReaderExp>); // [v1 v2 v3]
|
||||
StrExp(s:String); // "literal"
|
||||
Symbol(name:String); // s
|
||||
RawHaxe(code:String); // #| haxeCode() |#
|
||||
TypedExp(path:String, exp:ReaderExp); // :type [exp]
|
||||
MetaExp(meta:String, exp:ReaderExp); // &meta [exp]
|
||||
FieldExp(field:String, exp:ReaderExp); // .field [exp]
|
||||
KeyValueExp(key:ReaderExp, value:ReaderExp); // =>key value
|
||||
Quasiquote(exp:ReaderExp); // `[exp]
|
||||
Unquote(exp:ReaderExp); // ,[exp]
|
||||
UnquoteList(exp:ReaderExp); // ,@[exp]
|
||||
}
|
@@ -3,6 +3,7 @@ package kiss;
|
||||
import haxe.macro.Expr;
|
||||
import haxe.macro.Context;
|
||||
import kiss.Reader;
|
||||
import kiss.ReaderExp;
|
||||
import uuid.Uuid;
|
||||
import kiss.Kiss;
|
||||
|
||||
|
Reference in New Issue
Block a user