---
name: "tnc"
section: "1"
platform: "linux"
package: "tendra"
version: "4.1.2-19"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/tnc"
---

# tnc(1)

TDF notation compiler

## NAME

tnc - TDF notation compiler

## SYNOPSIS

**tnc** \[ *options* \] *input-file* \[ *output-file* \]

## DESCRIPTION

**tnc** translates TDF capsules to and from text.  It has two input modes, *read* and *decode*.  In the first, which is default, *input-file* is a file containing TDF text.  In the second *input-file* is a TDF capsule.  There are also two output mode, *encode* and *write*.  In the first, which is default, a TDF capsule is written to *output-file* In the second, TDF text is written to *output-file*.  If the *output-file* argument is absent, the standard output is used instead.

Combination of these modes give four actions: text to TDF (which is default), TDF to text, text to text, and TDF to TDF.  The last two actions are not precise identities, but they do give equivalent files.  The TDF pretty-printer, [*disp*(1)](/disp/1.md), provides a more sophisticated TDF to text translator, although its output cannot be used as the input to **tnc**.

The form of the TDF text format and more information about **tnc** can be found in the document *The TDF Notation Compiler*.

## OPTIONS

- **-c** or **-cv** or **-check**

  Specifies that **tnc** should apply extra checks to *input-file*. For example, simple shape checking is applied.  These checks are more efficient in *read* mode than in *decode* mode.  If the **-cv** option is used in *write* mode, all the information gleaned from the shape checking appears in *output-file*.

- **-d** or **-decode**

  Specifies that **tnc** should be in *decode* mode.  That is, that *input-file* is a TDF capsule.

- **-e** or **-encode**

  Specifies that **tnc** should be in *encode* mode.  That is, that *output-file* is a TDF capsule.

- **-eval**

  Specifies that **tnc** should simplify its input by evaluating constant expressions as far as possible.

- **-expand**

  Specifies that **tnc** should expand its input by replacing all applications of defined tokens by the token definition.

- **-f** or **-func**

  Causes **tnc** to use its alternative, functional, form for both input and output.  The options **-func\_in** and **-func\_out** may be used to change the input and the output independently.

- **-help** *subject* ...

  Makes **tnc** print its help message on the given subject(s).  If no subject is given, or the subject is *all*, all the help messages are printed.

- **-I***dir*

  Adds the directory *dir* to the search path used by **tnc** to find included files in *read* mode.

- **-l** or **-lib**

  In *decode* mode, specifies that *input-file* is not a TDF capsule, but a TDF library.  All the capsules comprising the library are decoded.

- **-L***prefix*

  Causes **tnc** to treat any external identifiers starting with *prefix* to be treated as if they were declare **local**.

- **-o** *output-file*

  Gives an alternative method of specifying the output file.

- **-p** or **-print**

  Specifies that **tnc** should be in *decode* and *write* modes. That is, that *input-file* is a TDF capsule and *output-file* should consist of TDF text.  This option makes **tnc** into a TDF pretty-printer.

- **-q**

  Causes **tnc** not to check the consistency of multiple tag or token definitions.

- **-r** or **-read**

  Specifies that **tnc** should be in *read* mode.  That is, that *input-file* should consist of TDF text.

- **-t** or **-tsimp**

  Specifies that **tnc** should expand its input by replacing all applications of defined tokens by the token definition and by evaluating constant expressions as far as possible.  This is equivalent to **-expand -eval**.

- **-V**

  In *write* mode, specifies that the output should be in the "verbose" form, with no shorthand forms.

- **-version**

  Makes **tnc** print its version number and the version of the TDF specification it supports.

- **-w** or **-write**

  Specifies that **tnc** should be in *write* mode.  That is, that *output-file* should consist of TDF text.

## SEE ALSO

[*disp*(1)](/disp/1.md), [*tcc*(1)](/tcc/1.md).
