3 # Copyright 2014 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
11 module_basename = os.path.basename(__file__)
12 module_pyname = os.path.splitext(module_basename)[0] + '.py'
15 // Copyright 2014 The Chromium Authors. All rights reserved.
16 // Use of this source code is governed by a BSD-style license that can be
17 // found in the LICENSE file.
19 // Auto-generated by {module_pyname}
21 const MediaQueryTokenizer::CodePoint MediaQueryTokenizer::codePoints[{array_size}] = {{
24 const unsigned codePointsNumber = {array_size};
29 codepoints = {'(': 'leftParenthesis',
30 ')': 'rightParenthesis',
31 '+': 'plusOrFullStop',
32 '.': 'plusOrFullStop',
36 '\\': 'reverseSolidus',
40 whitespace = '\n\r\t\f '
46 if c.isalpha() or c == '_':
50 return codepoints.get(c)
53 class MakeMediaQueryTokenizerCodePointsWriter(in_generator.Writer):
56 'RuntimeEnabled': None,
57 'ImplementedAs': None,
61 default_parameters = {
66 def __init__(self, in_file_path):
67 super(MakeMediaQueryTokenizerCodePointsWriter, self).__init__(in_file_path)
70 ('MediaQueryTokenizerCodepoints.cpp'): self.generate,
72 self._template_context = {
78 array_size = 128 # SCHAR_MAX + 1
79 token_lines = [' &MediaQueryTokenizer::%s,' % token_type(i)
80 if token_type(i) else ' 0,'
81 for i in range(array_size)]
82 return CPP_TEMPLATE.format(array_size=array_size, token_lines='\n'.join(token_lines), module_pyname=module_pyname)
84 if __name__ == '__main__':
85 in_generator.Maker(MakeMediaQueryTokenizerCodePointsWriter).main(sys.argv)