Scroll to navigation

fileutil::magic::cgen(3tcl) file utilities fileutil::magic::cgen(3tcl)


NAME

fileutil::magic::cgen - Generator core for compiler of magic(5) files

SYNOPSIS

package require Tcl 8.4

package require fileutil::magic::cgen ?1.0?

package require fileutil::magic::rt ?1.0?

package require struct::tree

package require struct::list

::fileutil::magic::cgen::2tree script

::fileutil::magic::cgen::treedump tree

::fileutil::magic::cgen::treegen tree node


DESCRIPTION

This package provides the generator backend for a compiler of magic(5) files into recognizers based on the fileutil::magic::rt recognizer runtime package. For the compiler frontend using this generator see the package fileutil::magic::cfront.

COMMANDS

::fileutil::magic::cgen::2tree script
This command converts the recognizer specified by the script into a tree and returns the object command of that tree as its result. It uses the package struct::tree for the tree.

The script is in the format specified by magic(5).

::fileutil::magic::cgen::treedump tree
This command takes a tree as generated by ::fileutil::magic::cgen::2tree and returns a string encoding the tree for human consumption, to aid in debugging.
::fileutil::magic::cgen::treegen tree node
This command takes a tree as generated by ::fileutil::magic::cgen::2tree and returns a Tcl script, the recognizer for the file types represented by the sub-tree rooted at the node. The generated script makes extensive use of the commands provided by the recognizer runtime package fileutil::magic::rt to perform its duties.

BUGS, IDEAS, FEEDBACK

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category fileutil :: magic 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.

SEE ALSO

file(1), fileutil, magic(5)

KEYWORDS

file recognition, file type, file utilities, mime, type

CATEGORY

Programming tools
1.0 tcllib