Skip to content
This repository was archived by the owner on Dec 6, 2021. It is now read-only.
This repository was archived by the owner on Dec 6, 2021. It is now read-only.

Current development track #206

@0xENDER

Description

@0xENDER

EWOS (Errors and Warnings output system):

Preprocessor:

  • Process the file type
  • 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)
  • Add the separate zone
    You can find more info about this in the issue "Add the separate super-method #128"
  • Remove extra whitespace
  • Filter comments
  • Import other files' content (the use and import methods)
    • Create a native libraries solution
      No more info is available at the moment!
    • Import Mur code from .mur files that are imported using the import method
      No more info is available at the moment!
  • Attach the lines' source files full path
    No more info is available at the moment!
  • Process the define method
    • Save the values and origin lines & columns
      No more info is available at the moment!

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!
  • 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_LINE terminal component
      No more info is available at the moment!
    • Add the STRING terminal component
      No more info is available at the moment!
    • Add the CHAR terminal component
      No more info is available at the moment!
    • Add the BOOLEAN terminal component
      No more info is available at the moment!
    • Add the NUMBER terminal component
      No more info is available at the moment!
    • Add the IDENTIFIER terminal component
      No more info is available at the moment!

    Group 2: the specifiers

    • Add the type_specifier terminal component
      No more info is available at the moment!
    • Add the state_specifier terminal component
      No more info is available at the moment!

    Group 3: the declarators

    • Add the function_declarator terminal component
      No more info is available at the moment!
    • Add the group_declarator terminal component
      No more info is available at the moment!
    • Add the class_declarator terminal component
      No more info is available at the moment!

    Group 4: the operators

    • Add the assignment_operator terminal component
      No more info is available at the moment!
    • Add the comparison_operator terminal component
      No more info is available at the moment!
    • Add the end_operator terminal component
      No more info is available at the moment!
    • Add the maths_operator terminal component
      No more info is available at the moment!
    • Add the zone_operator terminal component
      No more info is available at the moment!
    • Add the array_operator terminal component
      No more info is available at the moment!
    • Add the return_type_operator terminal component
      No more info is available at the moment!
    • Add the assignment_short_operator terminal component
      No more info is available at the moment!
    • Add the negative_operator terminal component
      No more info is available at the moment!
    • Add the parentheses_operator terminal component
      No more info is available at the moment!
    • Add the separation_operator terminal component
      No more info is available at the moment!
    • Add the dot_operator terminal component
      No more info is available at the moment!
    • Add the elevational_operator terminal component
      No more info is available at the moment!

    Group 5: statements

    • Add the return_statement terminal component
      No more info is available at the moment!
    • Add the ref_statement terminal component
      No more info is available at the moment!
    • Add the delete_statement terminal component
      No more info is available at the moment!

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 setsize method
      • Only save the values and origin lines & columns (for the parser)
        No more info is available at the moment!
    • 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!
    • 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!
    • 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!
    • 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!

Optimiser:

Evaluator:
On hold

Bundler:

  • Process tell data
    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

No one assigned

    Labels

    Top PriorityThis issue is considered a top priorityenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions