PK +,D* * tyrian-latest/searchindex.jsSearch.setIndex({objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","method","Python method"],"3":["py","class","Python class"],"4":["py","function","Python function"],"5":["py","exception","Python exception"]},terms:{usual:21,"01am":23,trivial:11,replac:11,horror:11,someon:8,mark:[10,11],flatten:3,simplist:6,markupsaf:8,"const":14,input_filenam:[6,20],particular:[17,18],right:[18,10,14],becaus:10,"int":14,uppercas:11,form:[10,11],why:10,avail:[10,11],full:11,join:11,discuss:11,charact:17,pipe:17,regular:18,third:9,load:[17,14],let:2,assembl:10,grammar:[17,13,15,18,11],ornod:18,multinod:18,entri:23,symbol_simple_div:21,empti:11,world:5,stringnod:16,run:[10,11],instruct:10,peak:10,grammarpars:[],parse_tre:7,helper:21,order:18,return_func:21,support:[],listnod:16,regex_expr:17,nor:18,set:[17,18,20,11],now:23,origin:[10,14],abov:[3,11],devcent:10,softwar:[],lisp_runtim:[],virtalenv:8,condit:11,optim:11,object:[17,23,16,14,7],futur:[],irc:8,non:[10,11],decent:11,enforce_typ:3,write_code_to_fil:7,pursu:11,henc:16,detect:11,readthedoc:[8,23],yield:14,directli:18,runtim:[],match_with:14,raw_grammar:17,nasti:10,trace_t:12,need:[17,18,23,10,11],diari:10,present:[11,10,2],codeobject:7,regist:21,root:17,file:[12,8,14,5,20,7,9,15,23],tyriansyntaxerror:15,ensur:18,left:[18,14,2],includ:[10,11],bug:10,rais:15,through:[10,14],small:[9,11],tell:23,node:[],like:[21,3,17],whitespac:11,written:[10,23],notat:2,interfac:[23,20,11],grunt:17,branch:11,command:[23,11],two:[18,11],follow:[17,9,6],purpos:[],all:[17,15,2],lex:[1,14,11],complet:[10,2],python:[8,5,6,20,9,10,11],error:[15,11],pop:11,wherebi:17,core:2,liter:[17,8,14],dict:[17,18,14,20],timelin:11,str:[14,17,18,20,7,11],some:[8,11],telecommun:10,string:[17,18,16,10,14],overlook:10,excess:11,load_grammar:17,load_grammar_map:17,print:[5,2],quot:16,kei:[17,18,11],unknown:23,primari:20,estim:11,path:20,thi:[],simpl:11,easi:15,repres:16,simplifi:1,contact:8,literalnod:18,"catch":15,each:10,finish:[],got:23,least:11,regex:[17,18,14],flesh:23,which:[8,14,17,18,10,11],handl:7,bytecodeassembl:[23,10,7],bool:[3,11],expect:[17,23],must:[17,11],def:[17,21,14],simple_math:[],definit:[],overrul:16,asset:[],between:[17,18,11],easier:23,intend:2,depth:3,continu:11,conquer:10,pert:11,where:17,write:[5,9,10,7],ast:[16,1,7],unicod:8,perform:[14,11],appropri:[17,10],seem:11,serv:[18,16],success:11,scope:23,func:[21,3],"try":11,http:10,token:[13,1,14,16,17,18,15],call_funct:21,work:[17,8,23],evalu:11,copi:18,host:23,output:[],blardi:21,kwarg:[21,1,16],line:[23,14,11],access:[18,10],quickstart:[],provid:[8,14,11],envis:10,raw:17,suppli:[21,3,14,17],exist:[],loaded_grammar:11,eas:[5,2],"20pm":23,symbolnod:16,base:[15,18,16],quotednod:16,far:23,remov:[10,11],port:[10,23],"12pm":23,subgrammar:[17,18],add_fiv:2,basi:10,data:[],allow:[5,15],instead:9,inject:23,obj:3,within:[17,11],end:[8,11],thing:9,field:18,renod:18,ideal:9,txt:8,parti:9,known:[10,23],refer:[15,2],xlsx:12,"__name__":21,disappointingli:23,correct:[8,11],format:[17,10,14],custom:9,can:[],facet:10,"true":[16,3],nice:11,load_token_definit:[17,14],pure:2,jinja2:8,pass:[17,21],compile_parse_tre:7,stream:13,tree:[17,23],attribut:[21,14],defun:2,when:[15,21,10],exclus:11,instanc:18,rule:11,content:[],accord:[17,14],map:[17,11],py3k:[23,10,11],lisp_registri:21,debug:5,come:21,syntact:2,code:[],first:[23,11],output_filenam:6,either:[],sure:[10,11],intern:14,itself:10,idnod:16,simpli:[17,16],option:[9,6],redesign:10,assist:[],mai:11,commun:10,extend:11,mani:[17,2],realiti:10,statement:11,from:[14,3,16,17,23,10,11],randi:21,had:[8,10],strip:[16,11],clean:11,ish:11,describ:[10,11],aka:17,assum:21,dai:8,didn:10,wrapper:14,syntax:[15,11],macro:[11,2],issu:10,your:[],mathemat:16,"_lex":14,databas:8,word:2,how:[10,11],valid:[17,9],upper:11,exampl:11,you:[],"import":[3,23],theori:[],websit:10,invalid:15,can_return_singl:3,grammar_kei:17,symbol_simple_sub:21,nosuchgrammar:15,parser:[16,9,1,23,11],add:8,reach:11,featur:[11,10,2],onli:10,found:15,grammardefinitionerror:15,none:[17,18,20,7],indic:11,other:9,forgot:8,start:[5,23,11],lexer:[],them:11,portion:4,subgrammarwrapp:18,thei:[8,10],crash:11,nest:[17,3],basic:[23,6,11],conveni:14,rstrip:11,befor:17,would:[9,11],alreadi:[],project:[],"default":8,alia:18,grammar_map:17,subsect:4,grammar_parser_inst:18,method:10,against:[18,3,14],contain:[13,1,14,16,4,17,18,20,21],keep:[10,11],gener:11,few:[9,8],comprehens:11,version:[8,10],lisp_funct:21,frame:11,argument:[3,23],oper:14,cours:2,denot:17,extern:10,articl:5,loop:11,proxi:18,elif:11,revis:11,page:11,truli:2,"function":[14,2,3,16,17,21,23],dictionari:[17,14,20],well:10,mutual:11,whilst:8,sub:18,librari:[],folder:11,call:[17,21,2],area:11,variou:9,proper:23,anyth:16,act:18,user:[],"return":[1,14,2,16,20,7,21],line_no:[18,14],valu:[21,3,11],name:[16,18,21,14,17],time:11,behavior:11,build:[8,1],actual:14,standard:[],amount:11,uncertain:3,land:2,make:[10,11],readm:10,program:[9,21,11],per:16,input:[],arg:[16,21],els:11,lisp:[],"while":11,system:[],list:[1,14,3,17,18,10,11],partial:14,check:[17,18,3,11],startswith:11,notif:11,defvar:2,grammarnod:[17,18],instal:10,successfulli:11,imag:11,product:[10,11],achiev:10,compat:11,tyrianexcept:15,compar:[18,14],gantt_chart:12,hurdl:[],singl:17,three:11,take:[11,14,7],down:10,annot:[3,10],com:10,iter:14,point:23,problem:[],number:[16,18,21,14],symbol_simple_mul:21,usabl:17,minimum:11,onc:17,solv:[],specifi:[17,7],enforc:3,num:2,could:11,guarante:5,rundown:[],out:[23,2],hello_world:5,mileston:[],more:[17,18,23],memori:11,permiss:17,containernod:[17,18,16],pyc:[5,9],understand:10,mesh:10,filehandl:7,consist:17,test:[],ident:16,recurs:11,filenam:[9,14,7],bytecod:[9,6,10,20],express:18,py2k:[10,23],same:9,sourc:[],have:[11,15,10,2],match:[18,14],polish:2,numbernod:16,later:8,implement:[23,11,6,10,2],via:[14,2],paramet:[1,14,3,17,18,20,7],languag:[],chart:[],outlin:10,see:[14,17,3,10,11],typars:[],requir:[8,11],"final":11,"class":[1,14,16,17,18,20,7],pars:[13,1,17,18,11,23],doe:[8,14,16,17,15,10,11],symbol:[18,16],doc:10,symbol_simple_add:21,part:[11,4],hello:5,variabl:2,account:10,side:18,last:21,terminolog:10,spit:23,period:10,util:[],lambda:[21,23],signific:11,here:10,fals:3,get:5,semant:10,partli:[],filter:11,given:1,fulli:10,particularli:10,asid:16,fix:8,registri:[],fit:4,pseudocod:[],own:9,essenti:9,split:11,"30pm":23,should:11,construct:17,handle_set:11,machin:11,done:[23,2],consid:11,sqrt:21,rememb:10,invalidtoken:15,possibl:[18,11],been:[10,2],than:23,doesn:[8,11],ani:[18,10],execut:23,misc:[],migrat:8,progress:10,quickli:5,might:23,multipl:18,howev:2,forc:8,token_def:[17,14],somewher:11,configur:14,modul:[10,11],type:[20,3,14,7],manipul:2,creat:[14,9,10,11],don:10,subnod:18,what:[],decor:21,necessarili:17,defin:17,usag:[6,10],parse_grammar:17},objects:{"tyrian.typarser.grammar_parser.grammar_nodes.LiteralNode":{LiteralNode:[18,3,1,""]},"tyrian.nodes":{IDNode:[16,3,1,""],StringNode:[16,3,1,""],SymbolNode:[16,3,1,""],ListNode:[16,3,1,""],QuotedNode:[16,3,1,""],AST:[16,3,1,""],NumberNode:[16,3,1,""],ContainerNode:[16,3,1,""],Node:[16,3,1,""]},"tyrian.tyrian":{Tyrian:[20,3,1,""]},"tyrian.compiler.Compiler":{write_code_to_file:[7,2,1,""],compile_parse_tree:[7,2,1,""]},"tyrian.tyrian.Tyrian":{compile:[20,2,1,""]},"tyrian.typarser.grammar_parser.grammar_nodes":{ORNode:[18,3,1,""],RENode:[18,3,1,""],SubGrammarWrapper:[18,3,1,""],LiteralNode:[18,3,1,""],GrammarNode:[18,3,1,""],MultiNode:[18,3,1,""],ContainerNode:[18,3,1,""]},"tyrian.typarser.Parser":{parse:[1,2,1,""]},"tyrian.typarser":{Parser:[1,3,1,""],grammar_parser:[13,0,0,"-"]},"tyrian.compiler":{Compiler:[7,3,1,""]},tyrian:{nodes:[16,0,0,"-"],typarser:[1,0,0,"-"],utils:[3,0,0,"-"],lisp_runtime:[21,0,0,"-"],exceptions:[15,0,0,"-"]},"tyrian.typarser.grammar_parser.grammar_nodes.RENode.RENode":{line_no:[18,1,1,""],name:[18,1,1,""],content:[18,1,1,""]},"tyrian.typarser.grammar_parser.GrammarParser":{load_grammar_mapping:[17,2,1,""],parse_grammars:[17,2,1,""],load_token_definitions:[17,2,1,""],parse_grammar:[17,2,1,""],load_grammar:[17,2,1,""]},"tyrian.lexer":{Lexer:[14,3,1,""]},"tyrian.typarser.grammar_parser":{GrammarParser:[17,3,1,""],grammar_nodes:[18,0,0,"-"]},"tyrian.lexer.Lexer":{load_token_definitions:[14,2,1,""],"_lex":[14,2,1,""],lex:[14,2,1,""],match_with:[14,2,1,""]},"tyrian.typarser.grammar_parser.grammar_nodes.RENode":{RENode:[18,3,1,""]},"tyrian.lisp_runtime.registry":{lisp_function:[21,4,1,""]},"tyrian.lisp_runtime.misc":{return_func:[21,4,1,""],call_function:[21,4,1,""]},"tyrian.utils":{enforce_types:[3,4,1,""],flatten:[3,4,1,""]},"tyrian.exceptions":{TyrianSyntaxError:[15,5,1,""],GrammarDefinitionError:[15,5,1,""],TyrianException:[15,5,1,""],InvalidToken:[15,5,1,""],NoSuchGrammar:[15,5,1,""]},"tyrian.typarser.grammar_parser.grammar_nodes.LiteralNode.LiteralNode":{line_no:[18,1,1,""],content:[18,1,1,""]},"tyrian.lisp_runtime":{registry:[21,0,0,"-"],misc:[21,0,0,"-"],simple_math:[21,0,0,"-"]},"tyrian.lisp_runtime.simple_math":{symbol_simple_div:[21,4,1,""],symbol_simple_mul:[21,4,1,""],symbol_simple_add:[21,4,1,""],symbol_simple_sub:[21,4,1,""],sqrt:[21,4,1,""]}},titles:["Charts","tyrian.typarser","Language Rundown","tyrian.utils","Theory","Quickstart","Welcome to tyrian’s writeup!","tyrian.compiler","Hurdles","Project Definition","Documentation","System Development","Assets","tyrian.typarser.grammar_parser","tyrian.lexer","tyrian.exceptions","tyrian.nodes","grammar_parser.GrammarParser","grammar_parser.grammar_nodes","Developer Documentation","tyrian.tyrian","Standard Library","User Documentation","Milestones"],envversion:43,filenames:["theory/charts","dev_docs/typarser","user_docs/language_rundown","dev_docs/utils","theory/index","user_docs/quickstart","index","dev_docs/compiler","theory/hurdles","theory/project_definition","theory/documentation","theory/system_development","theory/assets","dev_docs/grammar_utils","dev_docs/lexer","dev_docs/exceptions","dev_docs/nodes","dev_docs/grammar_parser","dev_docs/grammar_nodes","dev_docs/index","dev_docs/tyrian","user_docs/standard_library","user_docs/index","theory/milestones"],titleterms:{softwar:9,grammar_pars:[17,13,18],your:9,definit:9,content:6,hurdl:8,grammar_nod:18,data:11,languag:2,util:3,tyrian:[13,1,14,16,3,15,6,20,7,21],typars:[13,1],runtim:21,document:[19,10,22],problem:9,except:15,partli:9,trace:[12,11],registri:21,solv:9,gantt:12,futur:23,pseudocod:11,mileston:23,rundown:2,asset:12,simple_math:21,misc:21,can:9,quickstart:5,finish:23,context:0,you:9,theori:4,level:0,flow:0,user:22,develop:[0,19,11],code:11,librari:21,grammarpars:17,input:9,standard:21,tabl:[12,11],support:9,compil:7,purpos:9,output:9,sourc:11,test:11,dfd:0,lisp:21,lexer:14,thi:9,system:[0,9,11],what:9,either:9,lisp_runtim:21,chart:[0,12],diagram:0,exist:9,welcom:6,assist:9,writeup:6,node:16,alreadi:9,project:9},objtypes:{"0":"py:module","1":"py:attribute","2":"py:method","3":"py:class","4":"py:function","5":"py:exception"}})PK +,D+ + tyrian-latest/py-modindex.html
Tyrian is a simplistic LISP to python bytecode implementation.
Basic usage is as follows;
$ python tyrian.py <options> <input_filename> <output_filename>
LISP (LISP Is Syntactically Pure) is what is referred to as a functional language, in that all data manipulation is done via functions;
(defvar word "word")
(print word (+ 5 5))
(defun add_five (num)
(return (+ num 5))
)
(print (add_five 5))
(let q 5)
(let q (add_five q))
(print q)
functions are called via the Polish notation, er, notation.
As this is not intended to be a complete implementation, for ease of implementation, many features have been left out, such as macros. However, the truly core features are present;
- variables
- a standard library
- function calling (of course)
- lisp land function definitions