This repository was archived by the owner on Dec 6, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
This repository was archived by the owner on Dec 6, 2021. It is now read-only.
Current development track #206
Copy link
Copy link
Open
Labels
Top PriorityThis issue is considered a top priorityThis issue is considered a top priorityenhancementNew feature or requestNew feature or request
Description
EWOS (Errors and Warnings output system):
- Create an errors and warnings codes system
You can find more info about this in the issue "Create an errors and warnings codes system #208" - Output all errors and warnings (that are related to the code) to a
.opffile with detailed information #241
No more info is available at the moment!
Preprocessor:
- Process the file type
- Make it so the compiler will only accept
.murand.lib.murfiles
You can find more info about this in the issue "Exit on incorrect input file detection #172"
- Make it so the compiler will only accept
- Process the file header flags
- Output a warning once an unknown flag is detected
No more info is available at the moment! - Add the flag
<no-comments>
No more info is available at the moment! - Add the flag
<no-preprocessor-methods>
No more info is available at the moment! - Add the flag
<no-import>
No more info is available at the moment! - Add the flag
<no-using>
No more info is available at the moment! - Add the flag
<debug-mode>
This will result in the output program reporting stuff in a debug console to the user. No more info is available at the moment! - Add the flag
<safe-mode>
No more info is available at the moment! Add the flag<skip-preprocessor>
Cancelled! (This was a debug feature, and it's no longer needed)
- Output a warning once an unknown flag is detected
- Add the
separate zone
You can find more info about this in the issue "Add theseparatesuper-method #128" - Remove extra whitespace
- Remove extra whitespace at the start of every line
You can find more info about this in the issue "Enhance preprocessor text detection #90" - Remove extra whitespace at the end of every line
You can find more info about this in the pull request "Updated the whitespace filter #210"
- Remove extra whitespace at the start of every line
- Filter comments
- Filter single-line comments
You can find more info about this in the issue "The comments filter is breaking the compiler #57" - Filter multi-linear comments
You can find more info about this in the issue "The comments filter is breaking the compiler #57"
- Filter single-line comments
- Import other files' content (the
useandimportmethods)- Create a native libraries solution
No more info is available at the moment! - Import Mur code from
.murfiles that are imported using theimportmethod
No more info is available at the moment!
- Create a native libraries solution
- Attach the lines' source files full path
No more info is available at the moment! - Process the
definemethod- Save the values and origin lines & columns
No more info is available at the moment!
- Save the values and origin lines & columns
Lexer:
- Sort by types
- Add the type
SYMBOL
No more info is available at the moment! - Add the type
STRING
No more info is available at the moment! - Add the type
CHAR
No more info is available at the moment! - Add the type
NUMBER
No more info is available at the moment! - Add the type
OPERATOR
No more info is available at the moment! - Add the type
BOOLEAN
No more info is available at the moment! - Add the type
ZONE_LINE
No more info is available at the moment! - Add the type
HEX
No more info is available at the moment!
- Add the type
- Attach the Columns and Lines values
No more info is available at the moment! - Attach the source file full path
No more info is available at the moment! - Attach additional info
No more info is available at the moment! - Replace the constant identifiers with their respective values
No more info is available at the moment!
Parser:
-
Process all lexer tokens and categorise them to their terminal-forms (output to
.trm)
Group 1: the defaults- Add the
ZONE_LINEterminal component
No more info is available at the moment! - Add the
STRINGterminal component
No more info is available at the moment! - Add the
CHARterminal component
No more info is available at the moment! - Add the
BOOLEANterminal component
No more info is available at the moment! - Add the
NUMBERterminal component
No more info is available at the moment! - Add the
IDENTIFIERterminal component
No more info is available at the moment!
Group 2: the specifiers
- Add the
type_specifierterminal component
No more info is available at the moment! - Add the
state_specifierterminal component
No more info is available at the moment!
Group 3: the declarators
- Add the
function_declaratorterminal component
No more info is available at the moment! - Add the
group_declaratorterminal component
No more info is available at the moment! - Add the
class_declaratorterminal component
No more info is available at the moment!
Group 4: the operators
- Add the
assignment_operatorterminal component
No more info is available at the moment! - Add the
comparison_operatorterminal component
No more info is available at the moment! - Add the
end_operatorterminal component
No more info is available at the moment! - Add the
maths_operatorterminal component
No more info is available at the moment! - Add the
zone_operatorterminal component
No more info is available at the moment! - Add the
array_operatorterminal component
No more info is available at the moment! - Add the
return_type_operatorterminal component
No more info is available at the moment! - Add the
assignment_short_operatorterminal component
No more info is available at the moment! - Add the
negative_operatorterminal component
No more info is available at the moment! - Add the
parentheses_operatorterminal component
No more info is available at the moment! - Add the
separation_operatorterminal component
No more info is available at the moment! - Add the
dot_operatorterminal component
No more info is available at the moment! - Add the
elevational_operatorterminal component
No more info is available at the moment!
Group 5: statements
- Add the
return_statementterminal component
No more info is available at the moment! - Add the
ref_statementterminal component
No more info is available at the moment! - Add the
delete_statementterminal component
No more info is available at the moment!
- Add the
Check the file ./parser_plan.txt in the main directory of the project for more info
- Process all terminal-tokens and start (recursively) building the non-terminal final tokens (output to
.prs)
No more info is available at the moment!- Process the
setsizemethod- Only save the values and origin lines & columns (for the parser)
No more info is available at the moment!
- Only save the values and origin lines & columns (for the parser)
- Process group definitions
- Recognise group definition and name
No more info is available at the moment! - Link the group zone to the group
No more info is available at the moment! - Recognise when a group is called
No more info is available at the moment!
- Recognise group definition and name
- Process class definitions
- Recognise class definition and name
No more info is available at the moment! - Link the class zone to the class
No more info is available at the moment! - Recognise when a class is called
No more info is available at the moment!
- Recognise class definition and name
- Process function definitions
- Recognise function definition and name
No more info is available at the moment! - Link function arguments to the function
No more info is available at the moment! - Link the function zone to the function
No more info is available at the moment! - Recognise when a function is called
No more info is available at the moment!
- Recognise function definition and name
- Change the name of variables and functions to include the name of the group and class they are in
No more info is available at the moment!
- Process the
Optimiser:
- Optimise variable declarations
For more info, check the issue "Optimise variable declarations #292"
Evaluator:
On hold
Bundler:
- Process
telldata
No more info is available at the moment!
C Compiler:
On hold
After the core stuff is taken care of, move to these things:
- Build some demo projects
For example, you could try creating a "Conway's game of life" demo. - Create a Cross-Platform Structural Interface Definition Language
A cross-platform markup language that holds readable and understandable text that defines an interface for a program with local/native system components.
Note:
The system versioning is gonna work as followed:
X.X-<type>.<copy_id>
For example:
0.1-dev.2 means version 0.1, developer release, copy 2.
0.1-alpha.1 means version 0.1, alpha release, copy 1.
0.1-beta.4 means version 0.1, beta release, copy 4.
0.1 means version 0.1, final release.
Metadata
Metadata
Assignees
Labels
Top PriorityThis issue is considered a top priorityThis issue is considered a top priorityenhancementNew feature or requestNew feature or request