This repository was archived by the owner on Jun 27, 2022. It is now read-only.
Development Release v0.1.dev2
Pre-release
Pre-release
v0.1.dev2 - 2021-07-23
Second Development Version, which implements the base structure for Para-C, new module structure for pypi.org and an async base for concurrent execution.
Changelog
Added
- Pure syntax check command (
parac syntax-check, For info see #9 and #10) - Added const file
const.pyfor containing constant values that are used
throughout the module - pypi Module Structure with new parent
parac. Releases from now on will be uploaded to pypi.org as module - Distinction between distribution and module version and const Values
(const.py)DIST_VERSIONandMODULE_VERSIONfor separating Distribution
and Module/Source-Code Version. - Pre-Processor module, including its own grammar and handling for files
- Integration of the compiled Antlr4 lexer and parser in both Pre-Processor and Compiler
- ABC Base Class Files (in module
parac/abc/) for both Pre-Processor and Para-Compiler - New Exception Classes (With appropriate Update of
class ErrorCodes(IntEnum)):InternalErrorFailedToProcessErrorUserInputErrorFileAccessErrorInvalidArgumentsErrorConfigNotFoundErrorCCompilerNotFoundErrorLexerErrorParserErrorLogicalErrorLinkerErrorUnassociatedErrorUnknownError
- Temp file handling for creating new temporary files after the Pre-Processor
finished its processing run. This means the Compiler will receive the modified files
and raise errors on the modified ones and not the original ones. - Process Classes that manage an entire Run of the Compiler:
BasicProcess,FinishedProcessand
ProgramCompilationProcess - Context Classes that manage the context for a specific file or program (both Pre-Processor and Compiler):
FileCompilationContext,ProgramCompilationContext,FilePreProcessorContext,
ProgramPreProcessorContextwith respective parent ABC classes:FileRunContext
andProgramCompilationContext - Implementation of Base ABC Class
LogicStream(inheritslistas parent) remove_comments_from_strinParacCompilerwith support for all line endings- In
abortabledecorator (utils.py);- New argument
preserve_exception: If set toTruepreserves original
exception and not raise a new one from it - New argument
abort_on_internal_errors: If set toTrueInternal Errors
are treated likeInterruptErrorsand will abort the compilation
- New argument
- Class
InternalErrorInfofor saving information about an exception causing anInternalError - Property
origin_exctoInterrruptErrorfor saving the original exception instance that was raised. - New module
parac_clifor implementing theparacmodule
Changed
- Module Structure and added new parent module
paracfor both compiler and preprocessor. - Token Classes and refined items
- In
build-exe.py; Implementedpathlib.Pathusage and proper handling changed based on the new structure - Antlr4 Grammar file to include Pre-Processor statements and
the basic entry-file specification syntax - Updated runtime and added
asyncioimplementation support for running
processes async and concurrent as optimisation. - Error codes and exceptions (as stated in the language document
doc/ParaC-Luna-Klatzer.docx) - Usage of
antlr4.InputStream(string stream) instead ofantlr4.FileStream - Updated tests appropriately to the changes
- Renamed
AbortErrortoInterruptError - Renamed
EntryFilePermissionErrortoFilePermissionError - Renamed
EntryFileAccessErrortoFileAccessError - Renamed
EntryFileNotFoundErrortoFileNotFoundError ParacErrorListenerand let it inherit base ABC classBaseErrorListenerREADME.mdand added appropriate documentation on antlr4, cli and changes- Renamed cli command
inittoc-init - Renamed
parac-base-librarytoliband moved it tosrc/lib - Moved
loggingto base folderparac - Moved
utils.pyand split items into multiple files inparac/util - Renamed
para_exceptions.pytoexceptions.pyand moved it to base folderparac
Removed
- pytest option
--github=<true/false>(Became unnecessary and deprecated) - Comment Parsing Support. Comments are now handled over the function
parac.compiler.core.compiler.ParacCompiler.remove_comments_from_str