Using gdcc-acc

From GDCC Wiki
Jump to: navigation, search

The process of using gdcc-acc is under most circumstances identical to that of using the regular acc compiler. As a result, it can safely be used as a direct substitute for acc in utilities such as Slade.

Usage of gdcc-acc is as simple as the following:

gdcc-acc <input file>.acs <output file>.bin

Do note that there are some specific incompatibilities with ACC which should be accounted for in code using gdcc-acc.

In addition to the standard acc syntax, gdcc-acc has a plethora of additional command-line parameters that may be used, which can be listed by either running gdcc-acc without arguments, or passing the -h (--help) argument.

Most of these are useful only to gdcc-cc users, since these abilities are shared with that program. However, under very specific circumstances, these can be useful.

As of version 0.11.0, the default output of gdcc-acc is:

gdcc-acc v0.11.0
usage: gdcc-acc [option]... [source]...

Compiles ACS source into IR data. Output defaults to last loose argument.

  -h, --help       Prints usage and exits.
      --help-adoc  Prints AsciiDoc usage and exits.
      --help-long  Prints full usage and exits.
      --version    Prints version and exits.

codegen:
  --alloc-Aut                    Sets the default Aut stack size.
  --alloc-minimum                Sets the minimum address for an address space.
  --bc-zdacs-Sta-array           Sets the global array used for Sta.
  --bc-zdacs-init-gbl-array      Sets the global array used to store init
                                 status.
  --bc-zdacs-init-gbl-index      Sets the global array index used to store init
                                 status.
  --bc-zdacs-init-hub-array      Sets the hub array used to store init status.
  --bc-zdacs-init-hub-index      Sets the hub array index used to store init
                                 status.
  --bc-zdacs-init-script-name    Sets the name for the init script.
  --bc-zdacs-init-script-named   Enables a named init script.
  --bc-zdacs-init-script-number  Sets the number for the init script.
  --bc-zdacs-scripti-param       Sets the number of native parameters for
                                 numbered scripts.
  --bc-zdacs-scripts-param       Sets the number of native parameters for named
                                 scripts.
  --func-minimum                 Sets the minimum address for functions.
  --zero-null-StrEn              Enables zero representation for StrEn nulls.

input:
  --lib-path    Sets the base path for library sources and headers.
  --sys-source  Adds source file from system directory.

output:
      --bc-format              Selects bytecode format.
      --bc-target              Selects target engine.
      --bc-zdacs-chunk-STRE    Generates an encrypted string table.
      --bc-zdacs-dump-ScriptI  Writes a list of numbered scripts to a file. Use
                               - to write to stdout. Structure is: <glyph>
                               <linka> <valueInt>
      --bc-zdacs-fake-ACS0     Generates a fake ACS0 header.
      --bc-zdacs-init-delay    Adds a delay before setting init flags.
      --error-file             Write errors to file.
  -c, --ir-output              Generate an IR file instead of bytecode.
  -l, --library                Adds a library name to import at runtime.
  -o, --output                 Sets output file or directory.

preprocessor:
  -D, --define        Adds a predefined macro.
  -i, --include       Adds a user include directory.
      --lang-include  Enables automatic detection of system include directories
                      by language. On by default.
      --sys-include   Adds a system include directory.
  -U, --undef         Removes a predefined macro.

warnings:
  --warn-all                        Enables all warnings.
  --warn-common                     Enables common warnings.
  --warn-deprecated                 Warns on use of deprecated entities.
  --warn-extra                      Enables common and extra warnings.
  --warn-extra-return-type          Warns on possible suspicious return type
                                    uasge.
  --warn-file-scope-semicolon       Warns on extraneous file-scope semicolon.
  --warn-forward-reference          Warns on forward function references.
  --warn-incompatible-declarationn  Warns on incompatible declarations.
  --warn-parentheses                Warns on suspicious lack of parentheses.
  --warn-redefinition               Warns about redefinitions.
  --warn-return-type                Warns on suspicious return type usage.
  --warn-strict                     Enables strict warnings.
  --warn-unknown-encoding-prefix    Warns about unknown encoding prefixes.
  --warn-unused-initializer         Warns about unused initializer expressions.
  --warn-unused-value               Warns about expressions with unused value.