SConscript (8453:82fc1267d3bb) | SConscript (8454:fad37c6670a6) |
---|---|
1# -*- mode:python -*- 2 3# Copyright (c) 2009 The Hewlett-Packard Development Company 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions are 8# met: redistributions of source code must retain the above copyright --- 49 unchanged lines hidden (view full) --- 58# Use SLICC 59# 60env['SLICC_PATH'] = str(protocol_dir) 61slicc_scanner = Classic("SliccScanner", ['.sm', '.slicc'], "SLICC_PATH", 62 r'''include[ \t]["'](.*)["'];''') 63env.Append(SCANNERS=slicc_scanner) 64 65def slicc_emitter(target, source, env): | 1# -*- mode:python -*- 2 3# Copyright (c) 2009 The Hewlett-Packard Development Company 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions are 8# met: redistributions of source code must retain the above copyright --- 49 unchanged lines hidden (view full) --- 58# Use SLICC 59# 60env['SLICC_PATH'] = str(protocol_dir) 61slicc_scanner = Classic("SliccScanner", ['.sm', '.slicc'], "SLICC_PATH", 62 r'''include[ \t]["'](.*)["'];''') 63env.Append(SCANNERS=slicc_scanner) 64 65def slicc_emitter(target, source, env): |
66 protocol = source[0].get_contents() 67 files = [s.srcnode().abspath for s in source[1:]] 68 slicc = SLICC(protocol, verbose=False) 69 slicc.load(files) | 66 assert len(source) == 1 67 filepath = source[0].srcnode().abspath 68 69 slicc = SLICC(filepath, verbose=False) |
70 slicc.process() 71 slicc.writeCodeFiles(protocol_dir.abspath) 72 if not env['NO_HTML']: 73 slicc.writeHTMLFiles(html_dir.abspath) 74 75 target.extend([protocol_dir.File(f) for f in sorted(slicc.files())]) 76 return target, source 77 78def slicc_action(target, source, env): | 70 slicc.process() 71 slicc.writeCodeFiles(protocol_dir.abspath) 72 if not env['NO_HTML']: 73 slicc.writeHTMLFiles(html_dir.abspath) 74 75 target.extend([protocol_dir.File(f) for f in sorted(slicc.files())]) 76 return target, source 77 78def slicc_action(target, source, env): |
79 protocol = source[0].get_contents() 80 files = [s.srcnode().abspath for s in source[1:]] 81 slicc = SLICC(protocol, verbose=True) 82 slicc.load(files) | 79 assert len(source) == 1 80 filepath = source[0].srcnode().abspath 81 82 slicc = SLICC(filepath, verbose=True) |
83 slicc.process() 84 slicc.writeCodeFiles(protocol_dir.abspath) 85 if not env['NO_HTML']: 86 slicc.writeHTMLFiles(html_dir.abspath) 87 88slicc_builder = Builder(action=MakeAction(slicc_action, Transform("SLICC")), 89 emitter=slicc_emitter) 90 91protocol = env['PROTOCOL'] | 83 slicc.process() 84 slicc.writeCodeFiles(protocol_dir.abspath) 85 if not env['NO_HTML']: 86 slicc.writeHTMLFiles(html_dir.abspath) 87 88slicc_builder = Builder(action=MakeAction(slicc_action, Transform("SLICC")), 89 emitter=slicc_emitter) 90 91protocol = env['PROTOCOL'] |
92sources = [ protocol_dir.File("RubySlicc_interfaces.slicc"), 93 protocol_dir.File("%s.slicc" % protocol) ] | 92sources = [ protocol_dir.File("%s.slicc" % protocol) ] |
94 95env.Append(BUILDERS={'SLICC' : slicc_builder}) | 93 94env.Append(BUILDERS={'SLICC' : slicc_builder}) |
96nodes = env.SLICC([], [ Value(protocol) ] + sources) | 95nodes = env.SLICC([], sources) |
97env.Depends(nodes, slicc_depends) 98 99for f in nodes: 100 s = str(f) 101 if s.endswith('.cc'): 102 Source(f) 103 elif s.endswith('.py'): 104 SimObject(f) 105 | 96env.Depends(nodes, slicc_depends) 97 98for f in nodes: 99 s = str(f) 100 if s.endswith('.cc'): 101 Source(f) 102 elif s.endswith('.py'): 103 SimObject(f) 104 |