Sha256: 8ae06e7cdf34d5edb32cca2a51f16ce2760b97c5a817698e549854ae96a60934
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
# Check if variable is specific type module SchemeChecker def check_for_bool(token) return true if ['#t', '#f'].include? token is_instance_var = check_instance_var token return true if is_instance_var && (check_for_bool get_var token) false end def check_for_string(token) return true if token.string? is_instance_var = check_instance_var token return true if is_instance_var && (check_for_string get_var token) false end def check_for_number(token) return true if token.to_s.number? is_instance_var = check_instance_var token return true if is_instance_var && (check_for_number get_var token) false end def check_for_quote(token) return true if token[0].quote? is_instance_var = check_instance_var token return true if is_instance_var && (check_for_quote get_var token) false end def check_instance_var(var) return false if var.is_a? Proc return false unless valid_var_name var instance_variable_defined?("@#{var}") end def check_for_symbol(var) var = var.join('') if var.is_a? Array return true if var == '#\space' return true if var.character? is_instance_var = check_instance_var var return true if is_instance_var && (check_for_symbol get_var var) false end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lisp-interpreter-0.3.1 | lib/lisp/interpreter/checker.rb |