Chromium Code Reviews| Index: third_party/WebKit/Source/build/scripts/templates/macros.tmpl |
| diff --git a/third_party/WebKit/Source/build/scripts/templates/macros.tmpl b/third_party/WebKit/Source/build/scripts/templates/macros.tmpl |
| index 064dd985221d257994df2387b101d11eb14a634d..35ff53ce09ea13c35abd1e7e31f872bc2a81125d 100644 |
| --- a/third_party/WebKit/Source/build/scripts/templates/macros.tmpl |
| +++ b/third_party/WebKit/Source/build/scripts/templates/macros.tmpl |
| @@ -6,3 +6,53 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| {%- endmacro %} |
| + |
| + |
| +{% macro trie_leaf(index, object, return_macro, lowercase_data) %} |
| +{% for name, value in object.items() %} |
| + {% if name|length %} |
| +if ( |
| + {%- for c in name -%} |
| + {%- if lowercase_data -%} |
| + {{ " && " if not loop.first }}toASCIILower(data[{{index + loop.index0}}]) == '{{c}}' |
| + {%- else -%} |
| + {{ " && " if not loop.first }}data[{{index + loop.index0}}] == '{{c}}' |
| + {%- endif -%} |
| + {%- endfor -%} |
| + ) |
| + return {{ return_macro(value) }}; |
| +break; |
| + {% else %} |
| +return {{ return_macro(value) }}; |
| + {% endif %} |
| +{% endfor %} |
| +{% endmacro %} |
| + |
| + |
| +{% macro trie_switch(trie, index, return_macro, lowercase_data) %} |
|
Timothy Loh
2016/05/13 04:49:17
Do you think it would be clearer to merge the macr
meade_UTC10
2016/05/13 06:48:20
Hmm, I think it's clearer to have the trie_leaf ma
|
| +{% if lowercase_data %} |
| +switch (toASCIILower(data[{{index}}])) { |
| +{% else %} |
| +switch (data[{{index}}]) { |
| +{% endif %} |
| +{% for char, value in trie.items()|sort %} |
| +case '{{char}}': |
| + {% if value|length == 1 and value.items()[0][1] is string %} |
| + {{ trie_leaf(index+1, value, return_macro, lowercase_data) | indent(4) }} |
| + {% else %} |
| + {{ trie_switch(value, index + 1, return_macro, lowercase_data) | indent(4) }} |
| + {% endif %} |
| +{% endfor %} |
| +} |
| +break; |
| +{% endmacro %} |
| + |
| + |
| +{% macro trie_length_switch(length_tries, return_macro, default_return_value, lowercase_data) %} |
|
Timothy Loh
2016/05/13 05:41:33
default_return_value isn't used any more
meade_UTC10
2016/05/13 06:48:20
Done.
|
| +switch(length) { |
|
Timothy Loh
2016/05/13 04:49:17
Space after switch
meade_UTC10
2016/05/13 06:48:20
Done.
|
| +{% for length, trie in length_tries %} |
| +case {{ length }}: |
| + {{ trie_switch(trie, 0, return_macro, lowercase_data) | indent(4) }} |
| +{% endfor %} |
| +} |
| +{% endmacro %} |