Mad Pascal early version, with example PasIntro (winner Intro Compo Głuchołazy 2015)

Based on Sub-Pascal 32-bit real mode compiler for 80386+ processors v. 2.0 by Vasiliy Tereshkov, 2009

Mad-Pascal is a subset of Pascal programming language. It includes:
 
1.  If, For, While, Repeat statements.
2.  Compound statements.
3.  Arithmetic and boolean operators.
4.  Procedures and functions with up to 8 parameters. Returned value of a function is assigned to a predefined Result variable.
5.  Static local variables.
6.  Six primitive data types: Cardinal, Word, Char, Boolean, Pointer, Real (fixed-point). All types except the Real type are compatible. Pointers are dereferenced as pointers to Cardinal.
7.  One-dimensional arrays (with zero lower bound) of any primitive type. Arrays are treated as pointers to their origins (like in C) and can be passed to subroutines as parameters.
8.  Predefined type string [N] which is equivalent to array [0..N] of Char.
9. Separate program modules.
 
It does not include:
 
1.  Case, Goto statements. Avoided by using If and While statements.
2.  Records and multidimensional arrays. Avoided by using one-dimensional arrays and linear index calculation functions.
3.  Recursion.
4.  File operations.