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 CSSTokenizer::CodePoint CSSTokenizer::codePoints[{array_size}] = {{
24 const unsigned codePointsNumber = {array_size};
29 codepoints
= {'(': 'leftParenthesis',
30 ')': 'rightParenthesis',
35 '+': 'plusOrFullStop',
36 '.': 'plusOrFullStop',
42 '\\': 'reverseSolidus',
46 '^': 'circumflexAccent',
57 whitespace
= '\n\r\t\f '
63 if c
.isalpha() or c
== '_':
71 class MakeCSSTokenizerCodePointsWriter(in_generator
.Writer
):
72 def __init__(self
, in_file_path
):
73 super(MakeCSSTokenizerCodePointsWriter
, self
).__init
__(in_file_path
)
76 ('CSSTokenizerCodepoints.cpp'): self
.generate
,
80 array_size
= 128 # SCHAR_MAX + 1
81 token_lines
= [' &CSSTokenizer::%s,' % token_type(i
)
82 if token_type(i
) else ' 0,'
83 for i
in range(array_size
)]
84 return CPP_TEMPLATE
.format(array_size
=array_size
, token_lines
='\n'.join(token_lines
), module_pyname
=module_pyname
)
86 if __name__
== '__main__':
87 in_generator
.Maker(MakeCSSTokenizerCodePointsWriter
).main(sys
.argv
)