The compilefs language is extremely simple, it was created to allow basic text to be outputted into a code file, specifically LANGUAGE. Commands are of two types, 'bare' and 'separated' commands: Bare commands are delimited from their argument by the first space, and separated commands are delimited by a ':' colon character. Any line not detected to be a command of any kind will be completely ignored. Bare commands never output data, but set internal state. They may create files, directories or other such filesystem objects. Bare commands include: Sets the directory to put outputted files into. Must come before any "in file" or data outputting commands. Sets the file to put outputted data into. Must come before any data outputting commands. Processes the file given and returns to the current file. Separated commands output unprocessed data. They all output to the current file as specified with "in file". "put" commands use the syntax "arg -> alias" to denote the alias to output. Separated commands include: Outputs the argument as a comment. Outputs the argument to the given alias. Outputs the contents of a file to the given alias. Parses the given file using parsefile syntax. See below. "parsefiles" are another format provided by compilefs, created to make large amounts of multi-line data easier to write. It provides four commands, which all output data: <##> Outputs a comment. <==> Outputs to the given alias using the syntax "alias | arg". <%%> Outputs the following lines to the given alias verbatim. <@@> Outputs the following lines to the given alias, concatenating lines that are not empty together with spaces, and separating lines with an empty one.