---
name: "pt_util"
section: "3tcl"
platform: "linux"
package: "tcllib"
version: "2.0+dfsg-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/pt_util/3tcl"
---

# pt\_util(3tcl)

General utilities

```

```

## NAME

pt::util - General utilities

## SYNOPSIS

package require **Tcl 8.5 9**

package require **pt::ast ?1.2?**

**::pt::util** **error2readable** *error* *text*

**::pt::util** **error2position** *error* *text*

**::pt::util** **error2text** *error*

```

```

## DESCRIPTION

Are you lost ? Do you have trouble understanding this document ? In that case please read the overview provided by the *Introduction to Parser Tools*. This document is the entrypoint to the whole system the current package is a part of.

This package provides general utility commands.

This is a supporting package in the Core Layer of Parser Tools.

IMAGE: arch\_core\_support

## API

- **::pt::util** **error2readable** *error* *text*

  This command takes the structured form of a syntax *error* as thrown by parser runtimes and the input *text* to the parser which caused that error and returns a string describing the error in a human-readable form.

  The input *text* is required to convert the character position of the error into a more readable line/column format, and to provide excerpts of the input around the error position.

- **::pt::util** **error2position** *error* *text*

  This command takes the structured form of a syntax *error* as thrown by parser runtimes and the input *text* to the parser which caused that error and returns a 2-element list containing the line number and column index for the error's character position in the input, in this order.

- **::pt::util** **error2text** *error*

  This command takes the structured form of a syntax *error* as thrown by parser runtimes and returns a list of strings, each describing a possible expected input in a human-readable form.

## BUGS, IDEAS, FEEDBACK

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category *pt* of the *Tcllib Trackers* \[http://core.tcl.tk/tcllib/reportlist\]. Please also report any ideas for enhancements you may have for either package and/or documentation.

When proposing code changes, please provide *unified diffs*, i.e the output of **diff -u**.

Note further that *attachments* are strongly preferred over inlined patches. Attachments can be made by going to the **Edit** form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.

## KEYWORDS

EBNF, LL(k), PEG, TDPL, context-free languages, expression, grammar, matching, parser, parsing expression, parsing expression grammar, push down automaton, recursive descent, state, top-down parsing languages, transducer

## CATEGORY

Parsing and Grammars

## COPYRIGHT

```
Copyright (c) 2009 Andreas Kupries <andreas_kupries@users.sourceforge.net>
```
