Esempio n. 1
0
def generate_output(stripped_file_content):
	first_input_file_name = os.path.splitext(os.path.basename(sys.argv[1]))[0]
	output_file_name = subs.new_class_name(first_input_file_name) + '.h'
	with open(output_file_name, 'w') as f:
		print('Writing output file: %s\n' % output_file_name)
		map(lambda block: write_lines(f, block), create_header(stripped_file_content, output_file_name))
		map(lambda (block, log): write_lines(f, block, log, line_joint = '\\\n'), create_body(stripped_file_content))
Esempio n. 2
0
def create_c_macro_def(classes):
    def remove_duplicates(seq):
        seen = set()
        return [x for x in seq if x not in seen and not seen.add(x)]

    argument_list = remove_duplicates(
        subs.arguments_for(classes) + map(subs.new_class_name, classes))
    return '#define ' + subs.new_class_name(
        classes[0]).upper() + '_%s(' + ', '.join(argument_list) + ')'
Esempio n. 3
0
def generate_output(stripped_file_content):
    first_input_file_name = os.path.splitext(os.path.basename(sys.argv[1]))[0]
    output_file_name = subs.new_class_name(first_input_file_name) + '.h'
    with open(output_file_name, 'w') as f:
        print('Writing output file: %s\n' % output_file_name)
        map(lambda block: write_lines(f, block),
            create_header(stripped_file_content, output_file_name))
        map(lambda (block, log): write_lines(f, block, log, line_joint='\\\n'),
            create_body(stripped_file_content))
Esempio n. 4
0
def create_implementation(decl_type, cls, category):
    if (decl_type != 'interface') or category: return None
    return replace(impl.imp_block, [(r'new_class', subs.new_class_name(cls)),
                                    (r'original_class', cls)])
Esempio n. 5
0
def create_declaration_header(decl_type, cls, category, superclass, protocols):
    yield "@" + decl_type + ' ' + subs.new_class_name(cls)
    if superclass: yield " : " + cls
    if category: yield " (" + category + ")"
    if protocols: yield " <" + ', '.join(protocols) + '>'
Esempio n. 6
0
def create_c_macro_def(classes):
	def remove_duplicates(seq): seen = set(); return [x for x in seq if x not in seen and not seen.add(x)]
	argument_list = remove_duplicates(subs.arguments_for(classes) + map(subs.new_class_name, classes))
	return '#define ' + subs.new_class_name(classes[0]).upper() + '_%s(' + ', '.join(argument_list) + ')'
Esempio n. 7
0
def create_implementation(decl_type, cls, category):
	if (decl_type != 'interface') or category: return None
	return replace(impl.imp_block, [(r'new_class', subs.new_class_name(cls)), (r'original_class', cls)])
Esempio n. 8
0
def create_declaration_header(decl_type, cls, category, superclass, protocols):
	yield "@" + decl_type + ' ' + subs.new_class_name(cls)
	if superclass: yield " : " + cls
	if category: yield " (" + category + ")"
	if protocols: yield " <" + ', '.join(protocols) + '>'