I haven't worked on this in ages, illness somewhat interrupted my line of thought...
[fridhskrift.git] / lexer / group.cpp
blob79302c485ae909f7f20a1e7bad55c90e9443d120
1 #include <fridh/lexer.hpp>
3 namespace fridh
5 bool get_lexeme_group(lexeme_type::type input, lexeme_group::type & output)
7 using namespace lexeme_type;
9 switch(input)
11 case name:
13 case boolean:
14 case signed_integer:
15 case unsigned_integer:
16 case floating_point_value:
17 case string:
18 output = lexeme_group::argument;
19 return true;
21 case addition:
22 case subtraction:
23 case multiplication:
24 case division:
25 case modulo:
26 case exponentiation:
28 case assignment:
29 case addition_assignment:
30 case subtraction_assignment:
31 case multiplication_assignment:
32 case division_assignment:
33 case modulo_assignment:
34 case exponentiation_assignment:
36 case less_than:
37 case less_than_or_equal:
38 case greater_than:
39 case greater_than_or_equal:
40 case not_equal:
41 case equal:
43 case logical_and:
44 case logical_or:
46 case shift_left:
47 case shift_right:
49 case binary_and:
50 case binary_or:
51 case binary_xor:
53 output = lexeme_group::binary_operator;
54 return true;
56 case logical_not:
58 case binary_not:
60 output = lexeme_group::unary_operator;
61 return true;
63 case increment:
64 case decrement:
66 output = lexeme_group::post_fix_operator;
67 return true;
69 default:
70 return false;