Skip to content

zayac/eq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eq is a stream-based functional language designed for solving numerical tasks.
The syntax of the Eq programming language is based on a document preparation
system LaTeX. It follows that source files of the Eq can be interpreted by any
LaTeX conversion tool (i.e. pdflatex, latex2html, etc.).
The current version uses Python as a backend language.

Version: 0.1.1

Contribution:
Pavel Zaichenkov <zaichenkov@gmail.com>
Artem Shinkarov  <artyom.shinkaroff@gmail.com>

In order to build the compiler do the following:
  $ cd build/
  $ cmake ..
  $ make

CMake cache variables can be defined:
  -DBUILD_LEXER=[ON|<OFF>]	      = Select either to build the lexer only.
  -DBACKEND_LANG=[<python>|sac]	      = Select compiler's backend.
  -DFIRST_CLASS_FUNCTIONS=[<ON>|OFF]  = Enable or disable functions as
					a first-class objects.
  -DCFG_OUTPUT=[<ON>|OFF]	      = Enable a flow graph output in
					graphviz notation.
  -DRELEASE=[<ON>|<OFF>]              = Build  compiler with highest
                                        optimisations enabled.

In case you want to run a test bundle:
  $ ctest
or
  $ make test

A verbose output of the build is supported:
  $ make VERBOSE=1

It's possible to execute tests separately:
  $ ctest -R run_test		| Tests compilation of a correct syntax on
				| different stages (parser, type checking 
				| and code generating).
  $ ctest -R error_test		| Tests invalid syntax processing and error
				| handing.
  $ ctest -R cfg_test		| Validates a cfg tree generated by the
				| compiler. Needs -DCFG_OUTPUT option to be
				| turned on.
  $ ctest -R exec_test		| Validates the output of the compiler.
  $ ctest -R memory_test	| Looks for memory leaks in the compiler.

About

A stream-based functional language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •