Esempio n. 1
0
    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 = ''
Esempio n. 2
0
 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
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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
Esempio n. 7
0
    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 = ''
Esempio n. 9
0
    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 = ''
Esempio n. 10
0
    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 = ''
Esempio n. 11
0
    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 = ""
Esempio n. 12
0
    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 = ''
Esempio n. 13
0
    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 = ''
Esempio n. 14
0
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
Esempio n. 15
0
 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 = ''