12: def get_token
13: if @token_index >= @arguments.size
14: return nil
15: end
16:
17: begin
18: case @arguments.split("")[@token_index]
19: when "("
20: return "(", "("
21:
22: when ")"
23: return ")", ")"
24:
25: when "n"
26: if (@arguments.split("")[@token_index + 1] == "o") && (@arguments.split("")[@token_index + 2] == "t") && ((@arguments.split("")[@token_index + 3] == " ") || (@arguments.split("")[@token_index + 3] == "("))
27: @token_index += 2
28: return "not", "not"
29: else
30: gen_statement
31: end
32:
33: when "!"
34: return "not", "not"
35:
36: when "a"
37: if (@arguments.split("")[@token_index + 1] == "n") && (@arguments.split("")[@token_index + 2] == "d") && ((@arguments.split("")[@token_index + 3] == " ") || (@arguments.split("")[@token_index + 3] == "("))
38: @token_index += 2
39: return "and", "and"
40: else
41: gen_statement
42: end
43:
44: when "o"
45: if (@arguments.split("")[@token_index + 1] == "r") && ((@arguments.split("")[@token_index + 2] == " ") || (@arguments.split("")[@token_index + 2] == "("))
46: @token_index += 1
47: return "or", "or"
48: else
49: gen_statement
50: end
51:
52: when " "
53: return " ", " "
54:
55: else
56: gen_statement
57: end
58: end
59: rescue NoMethodError => e
60: pp e
61: raise "Cannot end statement with 'and', 'or', 'not'"
62: end