           SPELL=colm
         VERSION=0.14.7
          SOURCE="$SPELL-$VERSION.tar.gz"
   SOURCE_URL[0]=https://www.colm.net/files/$SPELL/$SOURCE
         SOURCE2=$SOURCE.asc
  SOURCE2_URL[0]=${SOURCE_URL[0]}.asc
      SOURCE_GPG=colm.gpg:$SOURCE.asc:UPSTREAM_KEY
  SOURCE2_IGNORE=signature
SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
        WEB_SITE="https://www.colm.net/open-source/colm/"
      LICENSE[0]="GPL"
         ENTERED=20160905
        KEYWORDS=""
           SHORT="Colm Programming Language"
cat << EOF
Colm is a programming language designed for the analysis and transformation
of computer languages. Colm is influenced primarily by TXL. It is in the
family of program transformation languages.

A transformation language has a type system based on formal languages. Rather
than define classes or data structures, one defines grammars. A parser is
constructed automatically from the grammar, and the parser is used for two
purposes: to parse the input language, and to parse the structural patterns in
the program that performs the analysis. In this setting, grammar-based parsing
is critical because it guarantees that both the input and the structural
patterns are parsed into trees from the same set of types, allowing comparison.

Colm’s main contribution lies in the parsing method. Colm’s parsing engine
is generalized, but it also allows for the construction of arbitrary global
data structures that can be queried during parsing. In other generalized
methods, construction of global data requires some very careful consideration
because of inherent concurrency in the parsing method. It is such a tricky
task that it is often avoided altogether and the problem is deferred to a
post-parse disambiguation of the parse forest.
EOF
