OnWorks favicon

ctanglex - Online in the Cloud

Run ctanglex in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command ctanglex that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



ctanglex, cweavex - translate CWEB(x) to C (or C++) and/or TeX


ctanglex [ -bhpl ] [ +cs+ ] cwebfile[.w] [(changefile[.ch]|+|-) [outputfile[.c]]]
cweavex [ -bhpx ] [ +cs+dtefauwm ] [ +isearchpath ] cwebfile[.w] [(changefile[.ch]|+|-)


The ctanglex program converts a CWEB(x) source document into a C program that may be
compiled in the usual way. The output file includes #line specifications so that error
reporting and debugging can be done in terms of the CWEB(x) source file.

The cweavex program converts the same CWEB(x) file into a TeX file that may be formatted
and printed in the usual way. It takes appropriate care of typographic details like page
layout and the use of indentation, italics, boldface, etc., and it supplies extensive
cross-reference information that it gathers automatically.

CWEBx allows you to prepare a single document containing all the information that is
needed both to produce a compilable C program and to produce a well-formatted document
describing the program in as much detail as the writer may desire. The user of CWEBx
ought to have some familiarity with TeX as well as knowledge of C.

The command line should have one, two, or three names on it. The first is taken as the
CWEB(x) file (and `.w' is added if there is no extension). If that file cannot be opened,
the extension `.web' is tried instead. If there is a second name, it is a change file (and
`.ch' is added if there is no extension), otherwise the name of the CWEB(x) file with its
extension replaced by `.ch' is tried as change file name; if there no such file, no change
file is used. Instead of a change file one may specify `-' or `+'; `-' means do not use a
change file, and `+' means use a change file only if a file of the default name exists
(just as if only one name was given). The change file overrides parts of the CWEB(x) file,
as described in the documentation. A third name, if present, specifies the output file
name explicitly. The default output file name is that of the CWEB(x) file with extension
`.c' (for ctanglex ) or `.tex' (for cweavex ); the default extension is also applied if a
third name is given without extension.

Options in the command line may be either turned on with `+' and off with `-'; several
characters may follow in the same argument, which indicate several options that are turned
on respectively off simultaneously. In fact, the options are processed from left to
right, so a sequence like `-b +b' is equivalent to `+b' (which is the default).

The +b option shows a banner line on your terminal. The +h option shows a happy message if
the processing was successful. The +p option shows progress reports (starred module
numbers) as the processing takes place. If you say `-bhp', you get no terminal output but
error messages.

The +c option emulates Levy/Knuth CWEB. The +s option prints statistics about memory
usage at the end of a run (assuming that the programs have been compiled with the -DSTAT
switch, as they are by default on Debian systems). By setting the option ++ one can
select the C++ language instead of C.

The option -l is applicable to ctanglex only; when selected, the C output is made more
readable for humans by omitting #line directives and preserving layout and comments.

There are several other options applicable to cweavex only. The option -x means omit the
index and table of contents. By setting the option +d one causes cweavex to report
problems encountered in parsing the program fragments. With +t the index and module names
will be written to separate files. With +e the table of contents is forced to start on a
new sheet when using a two-sided printer. The options +f , +a , +u , +w , and +m change
the style in which programs are formatted: +f means force a newline after every simple
statement in the formatted output, and +a means also force a newline before every simple
statement, even if it follows a label or a condition; the option +u will change the style
so that a line break goes after `{' instead of before, thus preventing them from aligning
with their matching `}' (this is the style of Levy/Knuth CWEB), while the option +w puts a
line break both before and after `{', producing a more symmetric layout at the expense of
some extra paper. Finally, the option +m avoids forcing line breaks between successive
declarations in a local block. With the option +isearchpath one can specify a place to
look for header files, when they are not found in the current directory. The string
following the `+i' will be stored and prepended to a header file name if it cannot be
found otherwise (so the string should probably end with a pathname separator '/'). More
than one such search path can be specified; they will be tried in order from left to

Use ctanglex online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Open-source tool to access Amazon S3
    file storage. S3cmd is a free command
    line tool and client for uploading,
    retrieving and managing data in Amazon
    S3 and ot...
    Download s3cmd
  • 2
    XyZerKunG ServerTool
    XyZerKunG ServerTool
    XyZerKunG ServerTool helps you to make
    your own Minecraft server and play with
    your friend for a few minutes.
    Features:Automatically create a
    Minecraft serverU...
    Download XyZerKunG ServerTool
  • 3
    Java source intended to serve as a
    nexus for teaching both mathematics and
    software solutions for computation on
    iterative equations. Public interfaces
    allow a...
    Download CalcTools
  • 4
    Rocket.Chat Desktop Client
    Rocket.Chat Desktop Client
    Rocket.Chat Desktop client is the
    official desktop app for Rocket.Chat,
    the simple but powerful open source web
    chat platform. It's tested on macOS,
    Download Rocket.Chat Desktop Client
  • 5
    OfficeFloor provides inversion of
    coupling control, with its: - dependency
    injection - continuation injection -
    thread injection For more information
    visit the...
    Download OfficeFloor
  • 6
    DivKit is an open source Server-Driven
    UI (SDUI) framework. It allows you to
    roll out server-sourced updates to
    different app versions. Also, it can be
    used fo...
    Download DivKit
  • More »

Linux commands