Module: SchemeChecker
- Included in:
- Tokenizer
- Defined in:
- lib/lisp/interpreter/checker.rb
Overview
Check if variable is specific type
Instance Method Summary collapse
- #check_for_bool(token) ⇒ Object
- #check_for_number(token) ⇒ Object
- #check_for_quote(token) ⇒ Object
- #check_for_string(token) ⇒ Object
- #check_for_symbol(var) ⇒ Object
- #check_instance_var(var) ⇒ Object
Instance Method Details
#check_for_bool(token) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/lisp/interpreter/checker.rb', line 3 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 |
#check_for_number(token) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/lisp/interpreter/checker.rb', line 17 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 |
#check_for_quote(token) ⇒ Object
24 25 26 27 28 29 |
# File 'lib/lisp/interpreter/checker.rb', line 24 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_number get_var token) false end |
#check_for_string(token) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/lisp/interpreter/checker.rb', line 10 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 |
#check_for_symbol(var) ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/lisp/interpreter/checker.rb', line 37 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_character get_var var) false end |
#check_instance_var(var) ⇒ Object
31 32 33 34 35 |
# File 'lib/lisp/interpreter/checker.rb', line 31 def check_instance_var(var) return false if var.is_a? Proc return false unless valid_var_name var instance_variable_defined?("@#{var}") end |