# This file defines translations into \TeX\ code for keywords of OOT (Object-Oriented
# Turing). It also defines translations for special tokens, such as <=.

# Initialize the translation table to contain nulls.
translation := table()

# Reserved words.
translation["addressint"] := "{\\ttb{}addressint}"
translation["all"] := "{\\ttb{}all}"
translation["and"] := "\\(\\land\\)"
translation["anyclass"] := "{\\ttb{}anyclass}"
translation["array"] := "{\\ttb{}array}"
translation["assert"] := "{\\ttb{}assert}"
translation["begin"] := "{\\ttb{}begin}"
translation["bind"] := "{\\ttb{}bind}"
translation["body"] := "{\\ttb{}body}"
translation["boolean"] := "{\\ttb{}boolean}"
translation["by"] := "{\\ttb{}by}"
translation["case"] := "{\\ttb{}case}"
translation["char"] := "{\\ttb{}char}"
translation["cheat"] := "{\\ttb{}cheat}"
translation["checked"] := "{\\ttb{}checked}"
translation["class"] := "{\\ttb{}class}"
translation["close"] := "{\\ttb{}close}"
translation["collection"] := "{\\ttb{}collection}"
translation["const"] := "{\\ttb{}const}"
translation["decreasing"] := "{\\ttb{}decreasing}"
translation["deferred"] := "{\\ttb{}deferred}"
translation["div"] := "{\\ttb{}div}"
translation["else"] := "{\\ttb{}else}"
translation["elsif"] := "{\\ttb{}elsif}"
translation["end"] := "{\\ttb{}end}"
translation["enum"] := "{\\ttb{}enum}"
translation["exit"] := "{\\ttb{}exit}"
translation["export"] := "{\\ttb{}export}"
translation["external"] := "{\\ttb{}external}"
translation["false"] := "{\\ttb{}false}"
translation["flexible"] := "{\\ttb{}flexible}"
translation["for"] := "{\\ttb{}for}"
translation["fork"] := "{\\ttb{}fork}"
translation["forward"] := "{\\ttb{}forward}"
translation["free"] := "{\\ttb{}free}"
translation["function"] := "{\\ttb{}function}"
translation["get"] := "{\\ttb{}get}"
translation["if"] := "{\\ttb{}if}"
translation["implement"] := "{\\ttb{}implement}"
translation["import"] := "{\\ttb{}import}"
translation["in"] := "\\(\\in\\)"
translation["include"] := "{\\ttb{}include}"
translation["inherit"] := "{\\ttb{}inherit}"
translation["init"] := "{\\ttb{}init}"
translation["int"] := "{\\ttb{}int}"
translation["int1"] := "{\\ttb{}int1}"
translation["int2"] := "{\\ttb{}int2}"
translation["int4"] := "{\\ttb{}int4}"
translation["invariant"] := "{\\ttb{}invariant}"
translation["label"] := "{\\ttb{}label}"
translation["loop"] := "{\\ttb{}loop}"
translation["mod"] := "{\\ttb{}mod}"
translation["module"] := "{\\ttb{}module}"
translation["monitor"] := "{\\ttb{}monitor}"
translation["nat"] := "{\\ttb{}nat}"
translation["nat1"] := "{\\ttb{}nat1}"
translation["nat2"] := "{\\ttb{}nat2}"
translation["nat4"] := "{\\ttb{}nat4}"
translation["new"] := "{\\ttb{}new}"
translation["nil"] := "{\\ttb{}nil}"
translation["not"] := "\\(\\neg\\)\\kern-0.3em"
translation["of"] := "{\\ttb{}of}"
translation["opaque"] := "{\\ttb{}opaque}"
translation["open"] := "{\\ttb{}open}"
translation["or"] := "\\(\\lor\\)"
translation["pause"] := "{\\ttb{}pause}"
translation["pervasive"] := "{\\ttb{}pervasive}"
translation["pointer"] := "{\\ttb{}pointer}"
translation["post"] := "{\\ttb{}post}"
translation["pre"] := "{\\ttb{}pre}"
translation["procedure"] := "{\\ttb{}procedure}"
translation["process"] := "{\\ttb{}process}"
translation["put"] := "{\\ttb{}put}"
translation["quit"] := "{\\ttb{}quit}"
translation["read"] := "{\\ttb{}read}"
translation["real"] := "{\\ttb{}real}"
translation["real4"] := "{\\ttb{}real4}"
translation["real8"] := "{\\ttb{}real8}"
translation["record"] := "{\\ttb{}record}"
translation["register"] := "{\\ttb{}register}"
translation["result"] := "{\\ttb{}result}"
translation["return"] := "{\\ttb{}return}"
translation["seek"] := "{\\ttb{}seek}"
translation["set"] := "{\\ttb{}set}"
#translation["shl"] := "\\(\\triangleleft\\)"
translation["shl"] := "{\\ttb{}shl}"
#translation["shr"] := "\\(\\triangleright\\)"
translation["shr"] := "{\\ttb{}shr}"
translation["signal"] := "{\\ttb{}signal}"
translation["skip"] := "{\\ttb{}skip}"
translation["string"] := "{\\ttb{}string}"
translation["tag"] := "{\\ttb{}tag}"
translation["tell"] := "{\\ttb{}tell}"
translation["then"] := "{\\ttb{}then}"
translation["to"] := "{\\ttb{}to}"
translation["true"] := "{\\ttb{}true}"
translation["type"] := "{\\ttb{}type}"
translation["unchecked"] := "{\\ttb{}unchecked}"
translation["union"] := "{\\ttb{}union}"
translation["unit"] := "{\\ttb{}unit}"
translation["unqualified"] := "{\\ttb{}unqualified}"
translation["var"] := "{\\ttb{}var}"
translation["wait"] := "{\\ttb{}wait}"
translation["when"] := "{\\ttb{}when}"
translation["write"] := "{\\ttb{}write}"
translation["xor"] := "\\(\\oplus\\)"

# Translations for operators.
translation["<"] := "\\(<\\)"
translation[">"] := "\\(>\\)"
translation["<="] := "\\(\\le\\)"
translation[">="] := "\\(\\ge\\)"
translation["=>"] := "\\(\\Rightarrow\\)"
translation["**"] := "\\^{}"
translation["~="] := "\\(\\neq\\)"
translation["->"] := "\\(\\triangleright\\)"


# Pre-processor directives
translation["#else"] := "{#\\ttb{}else}"
translation["#elsif"] := "{#\\ttb{}elsif}"
translation["#end"] := "{#\\ttb{}end}"
translation["#if"] := "{#\\ttb{}if}"
translation["#macro"] := "{#\\ttb{}macro}"


# Turing Plus
#translation["child"] := "{\\ttb{}child}"
#translation["stub"] := "{\\ttb{}stub}"