Skip to content

Dashrep is a versatile descriptive programming language based on hyphenated phrases being successively expanded into replacement text. It is a much more flexible alternative to using a template language.

License

cpsolver/Dashrep-language

Repository files navigation

Language::Dashrep

Dashrep is a programming language that is simple, powerful, and fast.

See www.Dashrep.org for details.

The Dashrep compiler is written in the Dashrep language.

The current implementation of the Dashrep compiler generates Perl code that is directly executable as Perl code.  In the future the runtime code will be changed to a combination of (mostly) C and (some) C++ code that is compiled by the Clang compiler.

Version 3.03


RUNNING

These instructions explain how to run the Dashrep compiler, and the compiled program, in the Windows environment.  (Note: Running in the Linux environment is simpler, and does not require setting the "PerlPath".)

In the Windows batch script, use this command to prepare to use the Perl "interpreter."  Replace the "whatever" string as needed.

    set PerlPath=C:\whatever\

Optionally, verify that the needed files are available.

    dir %PerlPath%perl.exe
    dir %PerlPath%perl512.dll
    dir dashrep_compiler_executable.pl
    dir dashrep_test_code_joined_dashdefs.txt

Use this command to compile the Dashrep code that tests the compiler.

    %PerlPath%perl -w dashrep_compiler_executable.pl < dashrep_test_code_joined_dashdefs.txt > output_log_from_dashrep_compiler.txt
    del executable_test_dashrep_compiler.pl
    rename output_from_dashrep_compiler.pl executable_test_dashrep_compiler.pl

Run the compiled program, which generates an HTML file that shows the test results.

    %PerlPath%perl -w executable_test_dashrep_compiler.pl > output_results_from_dashrep_test.html

Important: Some tests that expect the specific environments listed below may fail, even though the compiler is working correctly.
    * specific test folder names
    * specific test file contents
    * specific "cgi" values
    * specific webpage retrieved using "curl" utility


HOW TO COMPILE THE COMPILER

Note that the file "dashrep_compiler_source_code.txt" is not the original source code, rather it is a copy of the actual source code.  The actual source code is in the many separate files within the "compiler_source" folder.  (In a similar way, the source code for the test code is in the many files within the "test_dashrep_code" folder.)

The utility "combine_listed_dashdefs.pl" combines separate source-code files into a single file that can be supplied to the compiler.

To update the compiler, use the current compiler to generate a new compiler, and then use that new compiler to generate yet another new compiler.  The second new compiler is a candidate for becoming the newest compiler.  However, to test the newest compiler, it must be used to generate yet another version that should exactly match itself (the "newest" compiler).  If an update passes this test and passes the usual compiler test (above), and passes other tests that are specific for the target application, then probably it can replace the "dashrep_compiler_executable.pl" file.

If edits to the compiler code are done within some parts of the compiler source code, it might be necessary to manually edit the "first new" compiler before using it to generate the "newest" compiler.

Yes, this is confusing.  If you aren't sure what to do, please do not attempt to change the Dashrep compiler source code.


SUPPORT AND DOCUMENTATION

You can find documentation for the Dashrep language at:

    www.dashrep.org


COPYRIGHT AND LICENCE

Copyright (c) 2009-2018 Richard Fobes at www.Dashrep.org, all rights reserved.

You can redistribute and/or modify the Dashrep-language code
under the Perl Artistic License 2.0, a copy
of which is included in the LICENSE file.

Conversions of this code into other languages are also
covered by the above license terms.

The Dashrep (TM) name is trademarked by Richard Fobes at
www.Dashrep.org to prevent the name from being co-opted.

The Dashrep (TM) language is in the public domain.

About

Dashrep is a versatile descriptive programming language based on hyphenated phrases being successively expanded into replacement text. It is a much more flexible alternative to using a template language.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published