| OLD | NEW |
| 1 #include "lexer/even-more-experimental-scanner.h" | 1 #include "lexer/even-more-experimental-scanner.h" |
| 2 | 2 |
| 3 {%- macro do_key(key) -%} | 3 {%- macro do_key(key) -%} |
| 4 {%- for r in key -%} | 4 {%- for r in key -%} |
| 5 {%- if not loop.first %} || {% endif -%} | 5 {%- if not loop.first %} || {% endif -%} |
| 6 {%- if r[0] == 'LATIN_1' -%} | 6 {%- if r[0] == 'LATIN_1' -%} |
| 7 {%- if r[1][0] == r[1][1] -%} | 7 {%- if r[1][0] == r[1][1] -%} |
| 8 yych == {{r[1][0]}} | 8 yych == {{r[1][0]}} |
| 9 {%- elif r[1][0] == 0 -%} | 9 {%- elif r[1][0] == 0 -%} |
| 10 yych <= {{r[1][1]}} | 10 yych <= {{r[1][1]}} |
| 11 {%- elif r[1][1] == 255 and encoding == 'latin1'-%} | 11 {%- elif r[1][1] == 255 and encoding == 'latin1'-%} |
| 12 yych >= {{r[1][0]}} | 12 yych >= {{r[1][0]}} |
| 13 {%- else -%} | 13 {%- else -%} |
| 14 ({{r[1][0]}} <= yych && yych <= {{r[1][1]}}) | 14 ({{r[1][0]}} <= yych && yych <= {{r[1][1]}}) |
| 15 {%- endif -%} | 15 {%- endif -%} |
| 16 {%- elif r[0] == 'CLASS' -%} | 16 {%- elif r[0] == 'CLASS' -%} |
| 17 {%- if r[1] == 'eos' -%} | 17 {%- if r[1] == 'eos' -%} |
| 18 (yych == 0 && cursor_ >= buffer_end_) | 18 (yych == 0 && cursor_ >= buffer_end_) |
| 19 {%- elif r[1] == 'zero' -%} | 19 {%- elif r[1] == 'zero' -%} |
| 20 (yych == 0 && cursor_ < buffer_end_) | 20 (yych == 0 && cursor_ < buffer_end_) |
| 21 {%- elif r[1] == 'byte_order_mark' and encoding == 'utf16'-%} | 21 {%- elif encoding == 'latin1' -%} |
| 22 (yych == 0xfffe || yych == 0xfeff) | 22 false /* {{r[1]}} */ |
| 23 {%- elif r[1] == 'non_latin_1_whitespace' and encoding == 'utf16'-%} | 23 {%- elif encoding == 'utf16' -%} |
| 24 {# FIXME: Add and use unicode_cache_->InNonAsciiWhitespace #} | 24 {%- if r[1] == 'byte_order_mark' -%} |
| 25 (yych > 255 && unicode_cache_->IsWhiteSpace(yych)) | 25 (yych == 0xfffe || yych == 0xfeff) |
| 26 {%- elif r[1] == 'non_latin_1_letter' and encoding == 'utf16'-%} | 26 {%- elif r[1] == 'non_latin_1_whitespace' -%} |
| 27 {# FIXME: Add and use unicode_cache_->InNonAsciiLetter #} | 27 {# FIXME: Add and use unicode_cache_->InNonAsciiWhitespace #} |
| 28 (yych > 255 && unicode_cache_->IsLetter(yych)) | 28 (yych > 255 && unicode_cache_->IsWhiteSpace(yych)) |
| 29 {%- elif r[1] == 'non_latin1_identifier_part_not_letter' and encoding == '
utf16'-%} | 29 {%- elif r[1] == 'non_latin_1_letter' -%} |
| 30 (yych > 255 && unicode_cache_->IsIdentifierPartNotLetter(yych)) | 30 {# FIXME: Add and use unicode_cache_->InNonAsciiLetter #} |
| 31 {%- elif r[1] == 'non_latin1_line_terminator' and encoding == 'utf16'-%} | 31 (yych > 255 && unicode_cache_->IsLetter(yych)) |
| 32 (yych > 255 && unicode_cache_->IsLineTerminator(yych)) | 32 {%- elif r[1] == 'non_latin_1_identifier_part_not_letter' -%} |
| 33 (yych > 255 && unicode_cache_->IsIdentifierPartNotLetter(yych)) |
| 34 {%- elif r[1] == 'non_latin_1_line_terminator' -%} |
| 35 (yych > 255 && unicode_cache_->IsLineTerminator(yych)) |
| 36 {%- elif r[1] == 'non_latin_1_everything_else' -%} |
| 37 {# FIXME: Optimize this away #} |
| 38 (yych > 255 && |
| 39 !unicode_cache_->IsWhiteSpace(yych) && |
| 40 !unicode_cache_->IsLetter(yych) && |
| 41 !unicode_cache_->IsIdentifierPartNotLetter(yych) && |
| 42 !unicode_cache_->IsLineTerminator(yych)) |
| 43 {%- else %} |
| 44 uncompilable code for {{encoding}} {{r[0]}} {{r[1]}} |
| 45 {%- endif -%} |
| 33 {%- else -%} | 46 {%- else -%} |
| 34 false /* {{r[1]}} */ | 47 uncompilable code for {{encoding}} {{r[0]}} {{r[1]}} |
| 35 {%- endif -%} | 48 {%- endif -%} |
| 36 {%- else -%} | 49 {%- else -%} |
| 37 false | 50 uncompilable code for {{encoding}} {{r[0]}} {{r[1]}} |
| 38 {%- endif -%} | 51 {%- endif -%} |
| 39 {%- endfor -%} | 52 {%- endfor -%} |
| 40 {%- endmacro -%} | 53 {%- endmacro -%} |
| 41 | 54 |
| 42 | 55 |
| 43 {% macro dispatch_action(type, value) -%} | 56 {% macro dispatch_action(type, value) -%} |
| 44 {%- if type == 'code' %} | 57 {%- if type == 'code' %} |
| 45 {{value}} | 58 {{value}} |
| 46 {% elif type == 'terminate' %} | 59 {% elif type == 'terminate' %} |
| 47 PUSH_EOS(); | 60 PUSH_EOS(); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 {% endfor -%} | 132 {% endfor -%} |
| 120 } | 133 } |
| 121 {%- endif -%} | 134 {%- endif -%} |
| 122 | 135 |
| 123 {%- for key, transition_state_id in state.transitions %} | 136 {%- for key, transition_state_id in state.transitions %} |
| 124 if ({{do_key(key)}}) { | 137 if ({{do_key(key)}}) { |
| 125 {{ do_transition(transition_state_id) }} | 138 {{ do_transition(transition_state_id) }} |
| 126 } | 139 } |
| 127 {% endfor -%} | 140 {% endfor -%} |
| 128 | 141 |
| 142 {%- for key, transition_state_id in state['deferred_transitions'] %} |
| 143 if ({{do_key(key)}}) { // deferred transition |
| 144 {{ do_transition(transition_state_id) }} |
| 145 } |
| 146 {% endfor -%} |
| 147 |
| 129 {%- set match_action = state.match_action -%} | 148 {%- set match_action = state.match_action -%} |
| 130 | 149 |
| 131 {%- if match_action %} | 150 {%- if match_action %} |
| 132 {{ dispatch_action(match_action[0], match_action[1]) }} | 151 {{ dispatch_action(match_action[0], match_action[1]) }} |
| 133 goto code_start; | 152 goto code_start; |
| 134 {% else %} | 153 {% else %} |
| 135 goto default_action; | 154 goto default_action; |
| 136 {%- endif %} | 155 {%- endif %} |
| 137 | 156 |
| 138 {%- endmacro %} | 157 {%- endmacro %} |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 {% endif -%} | 225 {% endif -%} |
| 207 {{dispatch_action(default_action[0], default_action[1])}} | 226 {{dispatch_action(default_action[0], default_action[1])}} |
| 208 FORWARD(); | 227 FORWARD(); |
| 209 goto code_start; | 228 goto code_start; |
| 210 | 229 |
| 211 fell_through: | 230 fell_through: |
| 212 CHECK(false); | 231 CHECK(false); |
| 213 } | 232 } |
| 214 } } | 233 } } |
| 215 | 234 |
| OLD | NEW |