Module: AjLisp
- Defined in:
- lib/ajlisp.rb,
lib/ajlisp/list.rb,
lib/ajlisp/lexer.rb,
lib/ajlisp/token.rb,
lib/ajlisp/parser.rb,
lib/ajlisp/context.rb,
lib/ajlisp/nil_atom.rb,
lib/ajlisp/primitive.rb,
lib/ajlisp/fprimitive.rb,
lib/ajlisp/named_atom.rb,
lib/ajlisp/file_source.rb,
lib/ajlisp/input_source.rb,
lib/ajlisp/dot_verb_atom.rb,
lib/ajlisp/fprimitive_do.rb,
lib/ajlisp/fprimitive_if.rb,
lib/ajlisp/primitive_add.rb,
lib/ajlisp/string_source.rb,
lib/ajlisp/fprimitive_let.rb,
lib/ajlisp/primitive_cons.rb,
lib/ajlisp/primitive_eval.rb,
lib/ajlisp/primitive_list.rb,
lib/ajlisp/primitive_load.rb,
lib/ajlisp/primitive_rest.rb,
lib/ajlisp/primitive_first.rb,
lib/ajlisp/at_constant_atom.rb,
lib/ajlisp/fprimitive_quote.rb,
lib/ajlisp/primitive_divide.rb,
lib/ajlisp/fprimitive_define.rb,
lib/ajlisp/fprimitive_lambda.rb,
lib/ajlisp/primitive_closure.rb,
lib/ajlisp/fprimitive_closure.rb,
lib/ajlisp/fprimitive_definef.rb,
lib/ajlisp/fprimitive_definem.rb,
lib/ajlisp/fprimitive_flambda.rb,
lib/ajlisp/fprimitive_mlambda.rb,
lib/ajlisp/primitive_multiply.rb,
lib/ajlisp/primitive_subtract.rb,
lib/ajlisp/primitive_predicates.rb,
lib/ajlisp/primitive_comparisons.rb,
lib/ajlisp/fprimitive_macro_closure.rb
Defined Under Namespace
Classes: AtConstantAtom, Context, DotVerbAtom, EmptyList, FPrimitive, FPrimitiveClosure, FPrimitiveDefine, FPrimitiveDefinef, FPrimitiveDefinem, FPrimitiveDo, FPrimitiveFLambda, FPrimitiveIf, FPrimitiveLambda, FPrimitiveLet, FPrimitiveMLambda, FPrimitiveMacroClosure, FPrimitiveQuote, FileSource, InputSource, Lexer, List, NamedAtom, NilAtom, Parser, Primitive, PrimitiveAdd, PrimitiveAtomPredicate, PrimitiveClosure, PrimitiveCons, PrimitiveDivide, PrimitiveEqual, PrimitiveEval, PrimitiveFirst, PrimitiveGreater, PrimitiveGreaterEqual, PrimitiveLess, PrimitiveLessEqual, PrimitiveList, PrimitiveListPredicate, PrimitiveLoad, PrimitiveMultiply, PrimitiveNativeMethod, PrimitiveNilPredicate, PrimitiveRest, PrimitiveSubtract, StringSource, Token, TokenType
Class Method Summary
collapse
Class Method Details
.context ⇒ Object
87
88
89
|
# File 'lib/ajlisp.rb', line 87
def self.context
return @context
end
|
.evaluate(context, item) ⇒ Object
91
92
93
94
95
96
97
|
# File 'lib/ajlisp.rb', line 91
def self.evaluate(context, item)
if item.is_a? List or item.is_a? NamedAtom
return item.evaluate(context)
end
return item
end
|
.repl ⇒ Object
115
116
117
118
119
120
121
122
123
124
125
126
|
# File 'lib/ajlisp.rb', line 115
def self.repl
source = InputSource.new
lexer = Lexer.new(source)
parser = Parser.new(lexer)
expr = parser.parseExpression
while expr
puts evaluate(self.context, expr)
expr = parser.parseExpression
end
end
|
.to_s(item) ⇒ Object
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/ajlisp.rb', line 99
def self.to_s(item)
if item.is_a? List or item.is_a? NamedAtom
return item.to_s
end
if item.is_a? String
return '"' + item + '"'
end
if item == nil
return "nil"
end
return item.to_s
end
|