Skip to content

BalaM314/soodocode

Repository files navigation

Soodocode

Soodocode: a runtime for Cambridge CS (9618) pseudocode syntax.

View the site here

Features

Statements

  • DECLARE, DEFINE, CONSTANT, Assignment, OUTPUT, INPUT, RETURN, CALL, TYPE
  • IF, ELSE, FOR, FOR STEP, WHILE, REPEAT
  • CASE OF statements
  • Case branch with range
  • FUNCTION, PROCEDURE
  • CLASS, CLASS INHERITS, Class property, Class procedure, Class function

Operators

  • or and equal_to not_equal_to less_than less_than_equal greater_than greater_than_equal not
  • add subtract negate multiply divide integer_divide mod
  • string_concatenate
  • pointer_reference pointer_dereference access

Builtin functions

  • LEFT, RIGHT, MID, TO_UPPER, TO_LOWER, UCASE, LCASE
  • NUM_TO_STR, STR_TO_NUM, IS_NUM, ASC, CHR, INT
  • DAY, MONTH, YEAR, DAYINDEX, SETDATE, TODAY
  • LENGTH() on arrays and strings
  • RAND

Arrays

  • n-dimensional arrays
  • Arrays with generic size (in function arguments)
  • Arrays with size determined by expressions

Types

  • Enums
  • Pointers
  • Recursive types
  • Infinite pointer types
  • Records
  • Sets

Classes

  • Classes
  • Public/private class members
  • Inheritance
  • SUPER in classes

Files

  • OPENFILE READFILE WRITEFILE CLOSEFILE statements
  • SEEK GETRECORD PUTRECORD statements
  • File GUI
  • EOF() function

Misc

  • Passing by value/reference for all variable types
  • Shortened forms (for variable declaration and function arguments)
  • Hundreds of error messages
  • Typo checking
  • Error ranges (underline the exact cause of the error, highlight the area around it)

About

Cambridge CS Pseudocode runtime and checker.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published