Syntax Ideas
Expression/Type Syntax
int : 32bit signed int
char : 8bit unsigned
Number : arbitrary precision number
str : character aggregate type
int[,] : two dimensional array
int[,][] : two dimensional array of one dimensional arrays
List<int> : list of integers
Python style
import sys
# imported from sys
# defmacro(expression) print <expression x> :
# sys.stdout.print(x)
def int a_function(int number,str name):
if name == "Fred":
return number
else:
return number -1
def (str first,str last) split_name(str a_name,str on=" "):
pieces = a_name.split(on)
return (pieces[0],pieces[1])
print split_name("David Jeske").first
Objective-C style
import sys;
// imported from sys
// macro(expression) print <expression x> : [sys.stdout print:x]
- (int)a_function: (int) number withName: (str) name
{
if (name == fred) {
return number;
} else {
return number - 1;
}
}
- (str first,str last) split_name: (str) a_name on: (str) on=""
{
pieces = [a_name splitOn:on];
return (pieces[0],pieces[1]);
}
print [. split_name:"David Jeske"].first;
C++/C#/Java style
import sys;
// imported from sys
// macro(expression) print <expression x> : sys.stdout.print(x)
int a_function(int number,str name) {
if (name == fred) {
return number;
} else {
return number - 1;
}
}
struct {str first,str last} split_name(str a_name,str on="") {
pieces = a_name.split(on);
return {pieces[0],pieces[1]};
}
print split_name("David Jeske").first;
// an example of using the macro/syntax system for a new pre-initialized data syntax
//
// macro(hash_element) key<expression:Hashable> ":" val<expression> : ( key, val );
// macro(list_of_elements) <hash_element> "," <list_of_elements> : list_of_elements.append(hash_element)
// | <hash_element last_element> : [ last_element ];
// macro(expression) "{" <list_of_elements> "}" : new HashTable(list_of_elements);
//
// usage:
// HashTable h = { 'a' : 1, 'b' : 2 };