File | Date | Author | Commit |
---|---|---|---|
bb | 2013-10-09 |
![]() |
[31fea1] add distribution configuration files. |
tl | 2013-09-26 |
![]() |
[374547] make return values for :eq,:ne, etc ops to be 0... |
LICENSE | 2013-10-09 |
![]() |
[94a638] add license and read-me files |
README.md | 2013-10-09 |
![]() |
[94a638] add license and read-me files |
Cado is a mature and extensible code generation language that operates on standard templates with embedded macros. It is useful for generating source code and other related content (tests, documents, tools, configuations, etc.), deriving from a common project dictionary or nomenclature.
Cado can be used to generate large build systems or test suites. It has been used to generate maven build systems with thousands of pom.xml files. It has been used to convert large ant build systems to maven. It can be used to refactor shell or csh scripts. It can be used to document a complex tool chain, and interfaces seamlessly with the unix/linux shell.
You can easily add to cado by writing a special purpose subroutine in perl. These operators are similar to the unix pipe semantics; i.e., they accept an input (content of a variable) and transform it to a new value.
Here is a very simple example:
mystring = ABC
mystring = $mystring:tolower:toupper
This converts the string to lowercase, and then back to uppercase.
Please see the Cado Quick Reference for a complete list of internal operators and constructs.
tl/src/cmn/cado/cgdoc.txt
cado -help
tl/src/cmn/cado/srcgen
tl/src/cmn/cado/regress/*.cg