---
name: "vislcg3"
section: "1"
platform: "linux"
package: "cg3"
version: "1.5.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/vislcg3"
---

# vislcg3(1)

This application is part of ( cg3 ) This tool is part of the CG-3 constraint grammar system: https://edu.visl.dk/cg3.html.

## NAME

vislcg3 - This application is part of ( **cg3** )

This tool is part of the CG-3 constraint grammar system: **https://edu.visl.dk/cg3.html**.

## SYNOPSIS

**vislcg3** \[OPTIONS\]

## DESCRIPTION

**vislcg3** is the grammar parser and disambiguator in the VISL constraint grammar system. It chooses between different analyses (or "readings") of a word delivered by a morphological analyser based on a set of grammatical rules.

By default, vislcg3 reads input from stdin and writes output to stdout.

## OPTIONS

- **-h**, **--help**

  shows this help

- \-?, **--**?

  shows this help

- **-V**, **--version**

  prints copyright and version information

- **-g**, **--grammar**

  specifies the grammar file to use for disambiguation

- **--grammar-out**

  writes the compiled grammar in textual form to a file

- **--grammar-bin**

  writes the compiled grammar in binary form to a file

- **--grammar-only**

  only compiles the grammar; implies **--verbose**

- **--ordered**

  (will in future allow full ordered matching)

- **-u**, **--unsafe**

  allows the removal of all readings in a cohort, even the last one

- **-s**, **--sections**

  number or ranges of sections to run; defaults to all sections

- **--rules**

  number or ranges of rules to run; defaults to all rules

- **--rule**

  a name or number of a single rule to run

- **-d**, **--debug**

  enables debug output (very noisy)

- **-v**, **--verbose**

  increases verbosity

- **-2**, **--vislcg-compat**

  enables compatibility mode for older CG-2 and vislcg grammars

- **-I**, **--stdin**

  file to read input from instead of stdin

- **-O**, **--stdout**

  file to print output to instead of stdout

- **-E**, **--stderr**

  file to print errors to instead of stderr

- **-C**, **--codepage-all**

  codepage to use for grammar, input, and output streams; defaults to UTF-8

- **--codepage-grammar**

  codepage to use for grammar; overrides **--codepage-all**

- **--codepage-input**

  codepage to use for input; overrides **--codepage-all**

- **--codepage-output**

  codepage to use for output and errors; overrides **--codepage-all**

- **-L**, **--locale-all**

  locale to use for grammar, input, and output streams; defaults to en\_US\_POSIX

- **--locale-grammar**

  locale to use for grammar; overrides **--locale-all**

- **--locale-input**

  locale to use for input; overrides **--locale-all**

- **--locale-output**

  locale to use for output and errors; overrides **--locale-all**

- **--no-mappings**

  disables all MAP, ADD, and REPLACE rules

- **--no-corrections**

  disables all SUBSTITUTE and APPEND rules

- **--no-before-sections**

  disables all rules in BEFORE-SECTIONS parts

- **--no-sections**

  disables all rules in SECTION parts

- **--no-after-sections**

  disables all rules in AFTER-SECTIONS parts

- **-t**, **--trace**

  prints debug output alongside with normal output

- **--trace-name-only**

  if a rule is named, omit the line number; implies **--trace**

- **--trace-no-removed**

  does not print removed readings; implies **--trace**

- **--trace-encl**

  traces which enclosure pass is currently happening; implies **--trace**

- **--dry-run**

  make no actual changes to the input

- **--single-run**

  runs each section only once; same as **--max-runs** 1

- **--max-runs**

  runs each section max N times; defaults to unlimited (0)

- **-S**, **--statistics**

  gathers profiling statistics while applying grammar

- **-Z**, **--optimize-unsafe**

  destructively optimize the profiled grammar to be faster

- **-z**, **--optimize-safe**

  conservatively optimize the profiled grammar to be faster

- **-p**, **--prefix**

  sets the mapping prefix; defaults to @

- **--unicode-tags**

  outputs Unicode code points for things like -\>

- **--unique-tags**

  outputs unique tags only once per reading

- **--num-windows**

  number of windows to keep in before/ahead buffers; defaults to 2

- **--always-span**

  forces scanning tests to always span across window boundaries

- **--soft-limit**

  number of cohorts after which the SOFT-DELIMITERS kick in; defaults to 300

- **--hard-limit**

  number of cohorts after which the window is forcefully cut; defaults to 500

- **-D**, **--dep-delimit**

  delimit windows based on dependency instead of DELIMITERS; defaults to 10

- **--dep-original**

  outputs the original input dependency tag even if it is no longer valid

- **--dep-allow-loops**

  allows the creation of circular dependencies

- **--dep-no-crossing**

  prevents the creation of dependencies that would result in crossing branches

- **--no-magic-readings**

  prevents running rules on magic readings

- **-o**, **--no-pass-origin**

  prevents scanning tests from passing the point of origin

- **-e**, **--show-end-tags**

  allows the \<\<\< tags to appear in output

- **--show-unused-sets**

  prints a list of unused sets and their line numbers; implies **--grammar-only**

- **--show-tag-hashes**

  prints a list of tags and their hashes as they are parsed during the run

- **--show-set-hashes**

  prints a list of sets and their hashes; implies **--grammar-only**

## BUGS

Email to: Tino Didriksen \<mail@tinodidriksen.com\>

## AUTHOR

(c) 2007-2025 GrammarSoft ApS
