spec.md (1332B)
1 HLC - the High Level Compiler 2 ============================= 3 4 HLC is a programming is a language that compiles down to LLI (Low Level Interpreter) 5 6 General info 7 ------------ 8 The language will be C like in nature, it will have 9 - pointers 10 - ... 11 12 Types 13 ----- 14 The language will have 3 built in types: 15 - `byte` 16 - `short` 17 - `long` 18 19 Syntax 20 ------ 21 The syntax for the language can be defined in the following BNF notation 22 23 prog ::= decs 24 25 decs ::= dec 26 ||= dec decs 27 28 dec ::= type NAME '=' value ';' 29 30 type ::= "byte" 31 ||= "short" 32 ||= "long" 33 ||= type '*' 34 35 value ::= "func" '(' args ')' '{' exprs '}' 36 ||= expr 37 38 args ::= arg 39 ||= arg args 40 41 arg ::= type NAME 42 43 exprs ::= expr ';' 44 ||= expr ';' exprs 45 46 expr ::= NUM 47 ||= '"' STRING '"' 48 ||= var 49 ||= dec 50 ||= expr '+' expr 51 ||= expr '-' expr 52 ||= expr '*' expr 53 ||= expr '/' expr 54 ||= expr '==' expr 55 ||= expr '!=' expr 56 ||= expr '>' expr 57 ||= expr '<' expr 58 ||= expr '>=' expr 59 ||= expr '<=' expr 60 ||= '*' expr 61 ||= '&' expr 62 63 var ::= NAME 64 || '*' var