This repository was archived by the owner on Jun 27, 2022. It is now read-only.
Development Release v0.1.dev5
Pre-release
Pre-release
v0.1.dev5 - 2021-11-09
Fourth Development Version, which fixes a license error (MIT
instead of GPL-3.0
) and updated the pypi.org README
Changelog
Added
initialise_default_paths
inparac.const
to initialise the set the const
variables DEFAULT_LOG_PATH, DEFAULT_BUILD_PATH and DEFAULT_DIST_PATH. This
allows for more customisation for the defaults paths in Para-C and avoids
the default paths being wrong after changing the working directory while running.- Property
errors
inBaseErrorListener
for storing received errors during
the parsing process (Both for the Pre-Processor and Compiler). - New Exception
ParaCSyntaxError
with proper implementation of error logs. - New Exception
ParaCSyntaxErrorCollection
for storing multiple SyntaxErrors
and report them at once when initialised. - New Util functions:
get_input_stream_from_ctx
,get_original_text
and
get_original_text_from_token
. - Implemented SyntaxError handling using the Antlr4 Error Handler - New Error Strategy is to collect all syntax errors and then at the end collect all warnings and
errors and display them. - Support for Whitespaces in the Antlr4 Grammar file to allow for better error messages and separation.
- Function in
util/pathtools.py
ensure_pathlib_path
, which will convert
the passed value to a pathlib.Path, if it's not already one. It will also
resolve all sys-links. - Property
logic_stream
toListener
and updated methods to allow for proper
future implementation of the logic stream. - New method
append_antlr_ctx
to the ABC ClassLogicStream
and its
implementation. - Addition of
program_ctx
to allFileRunContext
implementation
classes.
Changed
- Style of the init banner in the CLI and added docs link.
- Merged dynamic lists and arrays into the standard iterable type associated with
type identifier[]
,
which can utilise list functionality, but also practically stay normal arrays at the same time if not resized. For
more info see the lang document. - Fixed workdir issue in pytest causing usage outside
./src/pytest
to raise errors. - Fixed work-directory issue in
build-exe.py
and rewrote structure to allow runtime in the root directory. - The modules will now commonly use
pathlib.Path
and convert to it if is
a different type (str, bytes). - Renamed
validate_file_ending
tohas_valid_file_ending
and fixed a minor bug replacing the
all
call (all file endings must be true) toany
, meaning now only one needs to be true, which
is the correct and intended way of handling this. - Renamed
compiler-version
tag inparac-config.json
toparac-version
- Renamed the following keywords in ParaC.g4:
_Alignas
toalignas
_Alignof
toalignof
_Atomic
toatomic
_Bool
tobool
_Complex
tocomplex
_Imaginary
toimaginary
_Noreturn
tonoreturn
_Static_assert
tostatic_assert
__Thread_local
tothread_local
- Deprecated
const.SEPARATOR
and updatedget_relative_file_name
to properly
apply to the change - Updated Error message of
RuntimeError
(Mismatching file_names) in
get_relative_file_name
- Changed behaviour of
ParacCompiler.validate_syntax()
and removed the
additional usage of a listener to walk through the files, even though
a simple parse was enough for validating the syntax. - Updated logging messages and added more of them, where they are needed.
- Renamed
parac_cli
toparac_ext_cli
and published it to pypi - Moved Para-C Base Library data to new repo here
- Deleted the file
entry_cli.py
here, and moved the function toparac-ext-cli
here. This function can now be called
usingcli_run()
; This means that the main repo and module can only be run
as module, and the CLI is a fully separate entity.
Removed
list<t>
type from the Grammar file.WORK_DIR
inparac.const
and implemented dynamic fetching to allow for
workdir changes while running.- Full Support for extensionTaskLambda (deprecated).
- Deprecated
cleanup_path_str()
andcheck_valid_path_name()
fromutil/pathtools.py
. - Independent rule
entryPointSpecifier
in ParaC.g4 - Unsupported C keywords and statements from the grammar file (ParaC.g4):
__extension__
__builtin_va_arg
__builtin_offsetof
_Generic
(Might be added later again with new syntax)__inline__
__stdcall
__declspec
__attribute__
__asm
- Removed
__typeof__
version oftypeof
from the grammar file (ParaC.g4) - Removed
goto
as it is not supported in the Para-C logic (ParaC.g4) - Return-value
bool
fromParacCompiler.validate_syntax()
as it is
unnecessary with the raised exception when encountering a SyntaxError