logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

nescc-ncg - extract constants from nesC files

C Tool

       This  tool  generates  a  C  header  file  with  the  values  of the requested constants (defined as enum
       constants).

       The C tool accepts the following option:

       -c-prefix=prefix
              This option specifies a prefix to attach to the generated constants.

Description

nescc-ncg is a tool to extract constants from nesC files for use with other applications. It is typically
       used  in  conjunction with nescc-mig (which generates code to process nesC messages) to extract constants
       that are used in particular messages (e.g., constants representing various commands).

       The tool argument specifies what tool should be generated, the nesC-file specifies a nesC file which uses
       the constants you want to extract.  If your constants are all in a single .h file that does not depend on
       any other files, then you can specify the .h file directly as the msg-format-file. Note that if  some  of
       your  constants are defined with unique(...) or uniqueCount(...), you must specify your whole application
       as the nesC-file, or you will not get the correct constant values.

       Each filenames-or-constant-names is either a constant name (if it consists only of letters,  numbers  and
       _)  or  a  filename. In the former case, the specified constant will be extracted, in the latter case all
       constants from the specified C file will be extracted. Only constants declared in C files will  be  found
       by nescc-ncg.

       The current tools are java, python and C, which generate java, python and C code that contains the values
       of the requested constants.

Errors

nescc-ncg reports an error if ncc cannot compile nesC-file.

Java Tool

       This tool generates a java class with the values of the requested constants.   These  constants  will  be
       publicfinalstatic and have a type chosen from byte,short,char,int,long (the chosen type will be the
       first one in this list that can hold the constants value - this reduces the need for casts).

       The java tool accepts the following options:

       -java-classname=full-class-name
              This  option  is  required and specifies the package and name of the generated class. If the full-class-name has no '.', then no package directive is included in the output.

       -java-extends=class-name
              Specify the class the generated class will extend. The default is Object.

Name

       nescc-ncg - extract constants from nesC files

Options

       You can pass any nescc option, as well as

       -ooutput-file
              Specify the file in which to output the generated code.

       -nescc=driver
              Use driver instead of nescc to extract constants.  For example, if you specify -nescc=ncc, you can
              use  nescc-ncg  to  extract  constants  from TinyOS applications (which are normally compiled with
              ncc).

       tool-specific options
              See below.

Python Tool

       This tool generates a Python class with the values of the requested constants.  These constants  will  be
       class (rather than instance) variables.

       The Python tool accepts the following options:

       -python-classname=full-class-name
              This option is required and specifies the name of the generated class.

       -python-extends=class-name
              Specify the class the generated class will extend. The default is is to not inherit.

See Also

nescc(1), nescc-mig(1)

                                                 April 27, 2004                                     nescc-ncg(1)

Synopsis

nescc-ncg [any nescc option] [tool-specific options]
                 [-ooutput-file] [-nescc=driver]
                 toolnesC-filefilenames-or-constant-names...

See Also