def __init__(self, *args, **kwargs): Emit.__init__(self, *args, **kwargs) output_fname = 'Parameters.rst' self.f = open(output_fname, mode='w') self.spacer = re.compile("^", re.MULTILINE) self.rstescape = re.compile("([^a-zA-Z0-9\n ])") if self.sitl: parameterlisttype = "SITL Parameter List" else: parameterlisttype = "Complete Parameter List" parameterlisttype += "\n" + "=" * len(parameterlisttype) self.preamble = """.. Dynamically generated list of documented parameters .. This page was generated using {toolname} .. DO NOT EDIT .. _parameters: {parameterlisttype} {blurb} """.format(blurb=self.escape(self.blurb()), parameterlisttype=parameterlisttype, toolname=self.escape(self.toolname())) self.t = ''
def __init__(self, *args, **kwargs): Emit.__init__(self, *args, **kwargs) self.mp_fname = 'ParameterMetaData.xml' self.f = open(self.mp_fname, mode='w') self.preamble = '''<?xml version="1.0" encoding="utf-8"?>\n''' self.f.write(self.preamble) self.f.write('<Params>\n') self.gname = None self.skip_name = False
def __init__(self): Emit.__init__(self) wiki_fname = 'apm.pdef.xml' self.f = open(wiki_fname, mode='w') preamble = '''<?xml version="1.0" encoding="utf-8"?> <!-- Dynamically generated list of documented parameters (generated by param_parse.py) --> <paramfile> <vehicles> ''' self.f.write(preamble)
def __init__(self): Emit.__init__(self) wiki_fname = "apm.pdef.xml" self.f = open(wiki_fname, mode="w") preamble = """<?xml version="1.0" encoding="utf-8"?> <!-- Dynamically generated list of documented parameters (generated by param_parse.py) --> <paramfile> <vehicles> """ self.f.write(preamble)
def __init__(self): Emit.__init__(self) wiki_fname = 'Parameters.wiki' self.f = open(wiki_fname, mode='w') preamble = '''#summary Dynamically generated list of documented parameters = Table of Contents = <wiki:toc max_depth="4" /> = Vehicles = ''' self.f.write(preamble)
def __init__(self, *args, **kwargs): Emit.__init__(self, *args, **kwargs) self.output = "{:date " + edn_format.dumps( datetime.datetime.now(pytz.utc)) + " " git = subprocess.Popen(["git log --pretty=format:'%h' -n 1"], shell=True, stdout=subprocess.PIPE).communicate()[0] self.output += ":git-hash \"" + git.decode("ascii") + "\" " self.remove_keys = ["real_path"] self.explict_remap = [["displayname", "display-name"]] self.vehicle_name = None
def __init__(self, *args, **kwargs): Emit.__init__(self, *args, **kwargs) self.wiki_fname = 'apm.pdef.xml' self.f = open(self.wiki_fname, mode='w') self.preamble = '''<?xml version="1.0" encoding="utf-8"?> <!-- Dynamically generated list of documented parameters (generated by param_parse.py) --> ''' self.f.write(self.preamble) self.paramfile = etree.Element('paramfile') self.vehicles = etree.SubElement(self.paramfile, 'vehicles') self.libraries = etree.SubElement(self.paramfile, 'libraries') self.current_element = self.vehicles
def __init__(self): Emit.__init__(self) fname = 'Parameters.md' self.nparams = [] self.f = open(fname, mode='w') self.blacklist = None # Flag to generate navigation header for BlueRobotics' ArduSub docs if os.getenv('BRDOC') is not None: self.header = """---\nlayout: default\ntitle: "Parameters"\npermalink: /parameters/\nnav:""" self.preamble = """\nThis is a complete list of the parameters which can be set via the MAVLink protocol in the EEPROM of your APM to control vehicle behaviour. This list is automatically generated from the latest ardupilot source code, and so may contain parameters which are not yet in the stable released versions of the code. Some parameters may only be available for developers, and are enabled at compile-time.""" self.t = ''
def __init__(self): Emit.__init__(self) html_fname = 'Parameters.html' self.f = open(html_fname, mode='w') self.preamble = """<!-- Dynamically generated list of documented parameters This page was generated using Tools/autotest/param_metadata/param_parse.py DO NOT EDIT --> <h3 style="text-align: center">Complete Parameter List</h3> <hr /> <p>This is a complete list of the parameters which can be set via the MAVLink protocol in the EEPROM of your APM to control vehicle behaviour. This list is automatically generated from the latest ardupilot source code, and so may contain parameters which are not yet in the stable released versions of the code.</p> <!-- add auto-generated table of contents with "Table of Contents Plus" plugin --> [toc exclude="Complete Parameter List"] """ self.t = ''
def __init__(self): Emit.__init__(self) html_fname = "Parameters.html" self.f = open(html_fname, mode="w") self.preamble = """<!-- Dynamically generated list of documented parameters This page was generated using Tools/autotest/param_metadata/param_parse.py DO NOT EDIT --> <h3 style="text-align: center">Complete Parameter List</h3> <hr /> <p>This is a complete list of the parameters which can be set via the MAVLink protocol in the EEPROM of your APM to control vehicle behaviour. This list is automatically generated from the latest ardupilot source code, and so may contain parameters which are not yet in the stable released versions of the code.</p> <!-- add auto-generated table of contents with "Table of Contents Plus" plugin --> [toc exclude="Complete Parameter List"] """ self.t = ""
def __init__(self): Emit.__init__(self) output_fname = 'Parameters.rst' self.f = open(output_fname, mode='w') self.spacer = re.compile("^", re.MULTILINE) self.rstescape = re.compile("([^a-zA-Z0-9\n ])") self.preamble = """.. Dynamically generated list of documented parameters .. This page was generated using {toolname} .. DO NOT EDIT .. _parameters: Complete Parameter List ======================= {blurb} """.format(blurb=self.escape(self.blurb()), toolname=self.escape(self.toolname())) self.t = ''
def compiler(showSource, input_file, output_file): """This function goes through the classic phases of a modern compiler, each phase organized in its own module. The phases are: parsing: handled using the ply package - the parser module includes a lexer, and it builds an abstract syntax tree (AST). symbol collection: collects function, parameter, and variables names, and stores these in a symbol table. code generation: from the AST and symbol table, code is produced in an intermediate representation, quite close to the final assembler code. emit: the slightly abstract intermediate code is transformed to assembler code. """ # Read and verify ASCII input: encodingError = False try: if input_file: with open(input_file) as f: text = f.read() else: text = sys.stdin.read() try: text.encode("ascii") except UnicodeEncodeError: # Check for non-ascii encodingError = True except UnicodeDecodeError: # Check for unicode encodingError = True if encodingError: error_message("Set-Up", "The input is not in ASCII.", 1) # Parse input text: parser.parse(text) # the_program is the resulting AST: if interfacing_parser.parsing_error: exit() the_program = interfacing_parser.the_program if showSource: # Pretty print program: pp = ASTPrettyPrinterVisitor() the_program.accept(pp) return pp.getPrettyProgram() else: # Collect names of functions, parameters, and local variables: symbols_collector = ASTSymbolVisitor() the_program.accept(symbols_collector) symbol_table = symbols_collector.getSymbolTable() # Type check use of functions, parameters, and local variables: type_checker = ASTTypeCheckingVisitor(symbol_table) the_program.accept(type_checker) # Assign unique labels to functions: pre_intermediate_code_generator = ASTPreCodeGenerationVisitor() the_program.accept(pre_intermediate_code_generator) # Generate intermediate code: intermediate_code_generator = ASTCodeGenerationVisitor( symbol_table, pre_intermediate_code_generator.getLabelsGenerator()) the_program.accept(intermediate_code_generator) intermediate_code = intermediate_code_generator.get_code() # Emit the target code: emitter = Emit(intermediate_code, pre_intermediate_code_generator.getLabelsGenerator()) emitter.emit() code = emitter.get_code() return code
def __init__(self, *args, **kwargs): Emit.__init__(self, *args, **kwargs) json_fname = 'apm.pdef.json' self.f = open(json_fname, mode='w') self.content = {"json": {"version": 0}} self.name = ''