Changeset 4428
- Timestamp:
- Jan 19, 2015, 8:43:56 PM (4 years ago)
- Location:
- proto/charsetcompiler
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
proto/charsetcompiler/Makefile
r4423 r4428 1 1 OUTFILE=src/unicode_categories.h 2 2 3 PABLO_SRC=cat.pablo 3 4 PABLO_TEMPLATE=category_template.h … … 16 17 17 18 gc: 18 python $(PABLO_COMPILER) DerivedGeneralCategory.pablo -Z -t ucd_precompiled_gc.h -o src/precompiled_gc.h19 python $(PABLO_COMPILER) DerivedGeneralCategory.pablo -Z -t precompiled_gc.cpp -o src/precompiled_gc.cpp 19 20 20 21 sc: 21 python $(PABLO_COMPILER) Scripts.pablo -Z -t ucd_precompiled_sc.h -o src/precompiled_sc.h22 python $(PABLO_COMPILER) Scripts.pablo -Z -t precompiled_sc.cpp -o src/precompiled_sc.cpp 22 23 23 24 scx: 24 python $(PABLO_COMPILER) ScriptExtensions.pablo -Z -t ucd_precompiled_scx.h -o src/precompiled_scx.h25 python $(PABLO_COMPILER) ScriptExtensions.pablo -Z -t precompiled_scx.cpp -o src/precompiled_scx.cpp 25 26 26 27 blk: 27 python $(PABLO_COMPILER) Blocks.pablo -Z -t ucd_precompiled_blk.h -o src/precompiled_blk.h28 python $(PABLO_COMPILER) Blocks.pablo -Z -t precompiled_blk.cpp -o src/precompiled_blk.cpp 28 29 29 30 core: 30 python $(PABLO_COMPILER) DerivedCoreProperties.pablo -Z -t ucd_precompiled_derivedcoreproperties.h -o src/precompiled_derivedcoreproperties.h31 python $(PABLO_COMPILER) DerivedCoreProperties.pablo -Z -t precompiled_derivedcoreproperties.cpp -o src/precompiled_derivedcoreproperties.cpp 31 32 32 33 proplist: 33 python $(PABLO_COMPILER) PropList.pablo -Z -t ucd_precompiled_proplist.h -o src/precompiled_proplist.h 34 python $(PABLO_COMPILER) PropList.pablo -Z -t precompiled_proplist.cpp -o src/precompiled_proplist.cpp 35 -
proto/charsetcompiler/UCD/cformat.py
r4389 r4428 12 12 """ 13 13 14 cpp_template = r""" 15 /* 16 * Copyright (c) 2015 International Characters, Inc. 17 * This software is licensed to the public under the Open Software License 3.0. 18 * icgrep is a trademark of International Characters, Inc. 19 * 20 * This file is generated by %s - manual edits may be lost. 21 */ 22 23 #include "%s.h" 24 """ 25 26 27 14 28 def open_header_file_for_write(filename, generator_name='UCD_properties.py'): 15 29 f = open(filename + '.h', 'w') … … 18 32 return f 19 33 34 def open_cpp_file_for_write(filename, generator_name='UCD_properties.py'): 35 f = open(filename + '.cpp', 'w') 36 f.write(cpp_template % (generator_name, filename)) 37 return f 38 20 39 def close_header_file(f): 21 40 f.write("\n#endif\n") 41 f.close() 42 43 def close_cpp_file(f): 22 44 f.close() 23 45 -
proto/charsetcompiler/generate_UCD_property_functions.py
r4424 r4428 48 48 Unicode_template_var = Template("struct_${property}_%s.cc") 49 49 50 install_fn_header = r""" 51 void install_property_%s_fn_ptrs(pablo::PabloCompiler & p); 52 """ 50 53 install_fn = r""" 51 54 void install_property_%s_fn_ptrs(pablo::PabloCompiler & p) { … … 64 67 (self.property_value_list, self.property_value_enum_integer, self.property_value_full_name_map, self.property_value_lookup_map, self.missing_specs) = parse_PropertyValueAlias_txt(self.property_lookup_map) 65 68 66 def generate_enumerated_property_template(self, filename_root, property_code): 67 f = cformat.open_header_file_for_write(os.path.basename("ucd_precompiled_%s" % property_code), 'generate_UCD_property_functions.py') 68 cformat.write_imports(f, ['"pablo/pablo_compiler.h"']) 69 f.write(Unicode_pablo_template) 69 def generate_enumerated_property_header_and_template(self, filename_root, property_code): 70 hf = cformat.open_header_file_for_write(os.path.basename("precompiled_%s" % property_code), 'generate_UCD_property_functions.py') 71 cformat.write_imports(hf, ['"pablo/pablo_compiler.h"']) 70 72 pc = property_code.lower() 73 hf.write(install_fn_header % pc) 74 cformat.close_header_file(hf) 75 tf = cformat.open_cpp_file_for_write(os.path.basename("precompiled_%s" % property_code), 'generate_UCD_property_functions.py') 76 cformat.write_imports(tf, ['"icgrep.h"']) 77 tf.write(Unicode_pablo_template) 71 78 vlist = self.property_value_list[property_code] 72 79 for v in vlist: 73 f.write(Unicode_property_fn_template.substitute({'property': pc, 'value': v}))80 tf.write(Unicode_property_fn_template.substitute({'property': pc, 'value': v})) 74 81 install_stmt = " p.InstallExternalFunction(\"__get_%s_%%s\", (void *) & __get_%s_%%s);\n" % (pc, pc) 75 82 install_list = [install_stmt % (k, k) for k in vlist] 76 f.write(install_fn % (pc, "".join(install_list)))77 cformat.close_ header_file(f)78 83 tf.write(install_fn % (pc, "".join(install_list))) 84 cformat.close_cpp_file(tf) 85 79 86 def generate_enumerated_property_file(self, filename_root, property_code): 80 87 vlist = self.property_value_list[property_code] … … 108 115 f.close() 109 116 110 def generate_binary_property_ template(self, filename_root):117 def generate_binary_property_header_and_template(self, filename_root): 111 118 (props, prop_map) = parse_UCD_codepoint_name_map(filename_root + '.txt', self.property_lookup_map) 112 119 lprops = [p.lower() for p in props] 113 f = cformat.open_header_file_for_write(os.path.basename("ucd_precompiled_%s" % filename_root.lower()), 'generate_UCD_property_functions.py') 114 cformat.write_imports(f, ['"pablo/pablo_compiler.h"']) 115 f.write(Unicode_pablo_template) 120 hf = cformat.open_header_file_for_write(os.path.basename("precompiled_%s" % filename_root.lower()), 'generate_UCD_property_functions.py') 121 cformat.write_imports(hf, ['"pablo/pablo_compiler.h"']) 122 hf.write(install_fn_header % filename_root) 123 cformat.close_header_file(hf) 124 tf = cformat.open_cpp_file_for_write(os.path.basename("precompiled_%s" % filename_root.lower()), 'generate_UCD_property_functions.py') 125 cformat.write_imports(tf, ['"icgrep.h"']) 126 tf.write(Unicode_pablo_template) 116 127 for p in lprops: 117 f.write(Unicode_property_fn_template.substitute({'property': p, 'value': 'Y'}))128 tf.write(Unicode_property_fn_template.substitute({'property': p, 'value': 'Y'})) 118 129 install_stmt = " p.InstallExternalFunction(\"__get_%s_Y\", (void *) & __get_%s_Y);\n" 119 130 install_list = [install_stmt % (p, p) for p in lprops] 120 f.write(install_fn % (filename_root, "".join(install_list)))121 cformat.close_ header_file(f)131 tf.write(install_fn % (filename_root, "".join(install_list))) 132 cformat.close_cpp_file(tf) 122 133 123 134 def generate_binary_properties_file(self, filename_root): … … 145 156 # 146 157 # The Block property 147 ucd.generate_enumerated_property_ template('Blocks', 'blk')158 ucd.generate_enumerated_property_header_and_template('Blocks', 'blk') 148 159 ucd.generate_enumerated_property_file('Blocks', 'blk') 149 160 # 150 161 # Scripts 151 ucd.generate_enumerated_property_ template('Scripts', 'sc')162 ucd.generate_enumerated_property_header_and_template('Scripts', 'sc') 152 163 ucd.generate_enumerated_property_file('Scripts', 'sc') 153 164 # 154 165 # Script Extensions 155 ucd.generate_enumerated_property_ template('ScriptExtensions', 'scx')166 ucd.generate_enumerated_property_header_and_template('ScriptExtensions', 'scx') 156 167 ucd.generate_ScriptExtensions_pablo() 157 168 # 158 169 # General Category 159 ucd.generate_enumerated_property_ template('GeneralCategory', 'gc')170 ucd.generate_enumerated_property_header_and_template('GeneralCategory', 'gc') 160 171 ucd.generate_enumerated_property_file('extracted/DerivedGeneralCategory', 'gc') 161 172 # 162 173 # Core Properties 163 ucd.generate_binary_property_ template('DerivedCoreProperties')174 ucd.generate_binary_property_header_and_template('DerivedCoreProperties') 164 175 ucd.generate_binary_properties_file('DerivedCoreProperties') 165 176 # 166 ucd.generate_binary_property_ template('PropList')177 ucd.generate_binary_property_header_and_template('PropList') 167 178 ucd.generate_binary_properties_file('PropList') 168 179
Note: See TracChangeset
for help on using the changeset viewer.