Skip to content

Latest commit

 

History

History
113 lines (76 loc) · 2.1 KB

todo.md

File metadata and controls

113 lines (76 loc) · 2.1 KB

Todo List

Comments

  • Single line comments
  • Multi line comments

Variable Assignment

  • Variable assignment
  • Constant variable assignment

Arithmetic Operations

  • Implement addition (+), subtraction(-), multiplication(*), division(/), power(^)
  • Implement integer modulus(MOD) and division (DIV)

Relational Operations

  • Equal to (=)
  • Not equal to (!=)
  • Greater than (>)
  • Less than (<)
  • Greater than or equal to (>=)
  • Less than or equal to (<=)

Boolean Operations

  • AND
  • OR
  • NOT

Iteration

Indefinite Iteration

  • Repeat-until iteration
  • While iteration

Definite Iteration

  • For-to iteration
  • For-in iteration

Selection

If Statements

  • If selection
  • If-else selection
  • Nested selection
  • If-else if-else selection

Arrays

  • Array assignment
  • Array access
  • Multi dimensional arrays
  • For-in iteration over arrays

Records

  • Declaration of records
  • Instantiation of records
  • Record field access

Subroutines

  • Subroutine definition
  • Subroutine return values
  • Calling subroutines

Built-in Functions

Arrays & Strings

  • LEN() - Length of array or string
  • POSITION() - Position of element in array or string
  • SUBSTRING() - Extract substring from string
  • SLICE() - Extract subarray from array

Conversion

  • String to Int
  • String to Real
  • Int to String
  • Real to String
  • Char to Code
  • Code to Char

Random Number Generation

  • Generate random numbers within a range

Input & Output

  • USERINPUT assignment to variables
  • OUTPUT variable to standard output

Desirable Additions

  • Implement operation precedence for expressions
  • Add EXIT keyword for programatic use and also REPL mode
  • Add multi nesting of records
  • Add default values in record fields
  • Have named scopes
  • Printing of arrays and records

Later Releases

  • Fix memory leaks
  • Add better REPL mode
  • More informative error messages