ozark-lang / ozark

Ozark compiler
GNU General Public License v3.0
9 stars 0 forks source link

Task out translation functionality #3

Open chasefinch opened 7 years ago

chasefinch commented 7 years ago

Symbolic ozark & translations. Ozark is made of unicode, meant to be a common point between human thinkers (initially, ones who communicate in English) and computers.

NOTES:

Symbolic ozark uses one symbol per concept and can thus be minified and represents the logic in mathematical, non-English. The correspondance is 1-1.

: is universal for calls, but "(a ...)" and "(an ...)" for statements _ implied ++ create -- clear @@ (invisible) property $$ (invisible) inheritance -> is universal for calls, but "yields" for statements ! symbolic and english; identity method ; symbolic and english; clause separator

assign to >> assign to __ ~~ (invisible) method == translation // true \ false

and so on for all reserved words

any non-reserved symbol can be used for a method or pointer name. In translations, methods called newly reserved names are replaced by the symbols they represent.

e.g. to follow

== Bullet | en

@casing: BulletCasing? == @casing | en

@used: Boolean == @used | en

setup == setup | en ++ BulletCasing; >> @casing; setup

// >> @used

casing -> _casing: BulletCasing? == casing -> casing: BulletCasing? | en

@casing >> casing

hit target: Target? == hit target:Target? | en -- @casing

// >> @used

target getHit

IS!! -

property @casing: BulletCasing? property @used: Boolean

method setup create BulletCasing; assign to @casing; setup assign true to @used

method casing yields casing: implied BulletCasing? assign @casing to casing

method hit target: Target clear @casing assign true to @used

target getHit