From 41d80096ae11dc9dfa26da5ffb84dcdfa2caf28b Mon Sep 17 00:00:00 2001 From: Ferdinand Majerech Date: Fri, 1 Aug 2014 17:09:38 +0200 Subject: [PATCH] Regenerated docs. --- doc/doctrees/environment.pickle | Bin 12821 -> 12992 bytes doc/doctrees/tutorials/custom_types.doctree | Bin 47116 -> 47168 bytes .../tutorials/getting_started.doctree | Bin 33499 -> 31396 bytes doc/html/_sources/tutorials/custom_types.txt | 1 + .../_sources/tutorials/getting_started.txt | 181 +++++++++--------- doc/html/searchindex.js | 2 +- doc/html/tutorials/custom_types.html | 1 + doc/html/tutorials/getting_started.html | 166 ++++++++-------- 8 files changed, 170 insertions(+), 181 deletions(-) diff --git a/doc/doctrees/environment.pickle b/doc/doctrees/environment.pickle index 2c6f8951f726b83a80815d83c8c7be600ba778e2..af517f12ba4b5d6088c650e2142906d88864e734 100644 GIT binary patch literal 12992 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 YH|IxuWMlN+oEX2Hh0%XAX9{x&07MTZVE_OC delta 57 zcmX@`fvM*M(}u?Zj9Vr%hHTxuInb90&SYZRd@1Y#Bcsda#StIb7`--6jbF~f=(pK6 Hg*gNO<}(+j diff --git a/doc/doctrees/tutorials/getting_started.doctree b/doc/doctrees/tutorials/getting_started.doctree index b1337e3f3d30c206aa3c9e32511c0164d91ca99d..06c76f4791523f0f54c20d90c9b7417272531851 100644 GIT binary patch literal 31396 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 diff --git a/doc/html/_sources/tutorials/custom_types.txt b/doc/html/_sources/tutorials/custom_types.txt index 95de259..90a2b17 100644 --- a/doc/html/_sources/tutorials/custom_types.txt +++ b/doc/html/_sources/tutorials/custom_types.txt @@ -302,6 +302,7 @@ such as the color being white. representer.addRepresenter!Color(&representColor); auto resolver = new Resolver; + import std.regex; resolver.addImplicitResolver("!color", std.regex.regex("[0-9a-fA-F]{6}"), "0123456789abcdefABCDEF"); diff --git a/doc/html/_sources/tutorials/getting_started.txt b/doc/html/_sources/tutorials/getting_started.txt index 99cb834..d968fa8 100644 --- a/doc/html/_sources/tutorials/getting_started.txt +++ b/doc/html/_sources/tutorials/getting_started.txt @@ -1,13 +1,13 @@ =============== -Getting started +Getting started =============== -Welcome to D:YAML! D:YAML is a `YAML `_ -parser library for the `D programming language `_. -This tutorial will explain how to set D:YAML up and use it in your projects. +Welcome to D:YAML! D:YAML is a `YAML `_ parser +library for the `D programming language `_. This tutorial will +explain how to set D:YAML up and use it in your projects. -This is meant to be the **simplest possible** introduction to D:YAML. Some of -this information might already be known to you. Only basic usage is covered. +This is meant to be the **simplest possible** introduction to D:YAML. Some of this +information might already be known to you. Only basic usage is covered. ---------- @@ -18,59 +18,43 @@ Setting up Install the DMD compiler ^^^^^^^^^^^^^^^^^^^^^^^^ -Digital Mars D compiler, or DMD, is the most commonly used D compiler. You can -find its newest version `here `_. -Download the version of DMD for your operating system and install it. +Digital Mars D compiler, or DMD, is the most commonly used D compiler. You can find its +newest version `here `_. Download the version of DMD +for your operating system and install it. -.. note:: - Other D compilers exist, such as - `GDC `_ and +.. note:: + Other D compilers exist, such as + `GDC `_ and `LDC `_. -^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Download and compile D:YAML -^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^ +Install dub +^^^^^^^^^^^ -The newest version of D:YAML can be found -`here `_. Download a source archive, extract -it, and move to the extracted directory. +`dub `_ is a build system and package manager for D. +It is the standard way to manage D projects and their dependencies, compilation and so +on. -D:YAML uses a modified version of the `CDC `_ -script for compilation. To compile D:YAML, you first need to build CDC. -Do this by typing the following command into the console:: - - dmd cdc.d - -Now compile D:YAML with CDC. -To do this on Unix/Linux, use the following command:: - - ./cdc - -On Windows:: - - cdc.exe - -This will compile the library to a file called ``libdyaml.a`` on Unix/Linux or -``libdyaml.lib`` on Windows. +DMD may include DUB in future releases, but at this point we need to install it +separately. See +`installation instructions `_. ------------------------- -Your first D:YAML project +Your first D:YAML project ------------------------- -Create a directory for your project and in that directory, create a file called -``input.yaml`` with the following contents: +Create a directory for your project and in that directory, create a new file named +``input.yaml`` and paste this code into the file: .. code-block:: yaml - Hello World : - - Hello - - World + Hello World : [Hello, World] Answer: 42 This will serve as input for our example. -Now we need to parse it. Create a file called ``main.d``. Paste following code +Now we need to parse it. Create a new file with name ``main.d``. Paste following code into the file: .. code-block:: d @@ -99,83 +83,94 @@ into the file: Explanation of the code ^^^^^^^^^^^^^^^^^^^^^^^ -First, we import the *yaml* module. This is the only D:YAML module you -need to import - it automatically imports all needed modules. +First, we import the *dyaml.all* module. This is the only D:YAML module you need to +import - it automatically imports all needed modules. -Next we load the file using the *Loader.load()* method. *Loader* is a struct -used for parsing YAML documents. The *load()* method loads the file as -**one** YAML document, or throws *YAMLException*, D:YAML exception type, if the -file could not be parsed or does not contain exactly one document. Note that we -don't do any error checking here in order to keep the example as simple as -possible. +Next we load the file using the *Loader.load()* method. *Loader* is a struct used for +parsing YAML documents. The *load()* method loads the file as **one** YAML document, or +throws *YAMLException*, D:YAML exception type, if the file could not be parsed or +contains more than one document. Note that we don't do any error checking here in order +to keep the example as simple as possible. -*Node* represents a node in a YAML document. It can be a sequence (array), -mapping (associative array) or a scalar (value). Here the root node is a -mapping, and we use the index operator to get subnodes with keys "Hello World" -and "Answer". We iterate over the first, as it is a sequence, and use the -*Node.as()* method on the second to read its value as an integer. +*Node* represents a node in a YAML document. It can be a sequence (array), mapping +(associative array) or a scalar (value). Here the root node is a mapping, and we use the +index operator to get subnodes with keys "Hello World" and "Answer". We iterate over the +former, as it is a sequence, and use the *Node.as()* method on the latter to read its +value as an integer. -You can iterate over a mapping or sequence as if it was an associative or normal -array. If you try to iterate over a scalar, it will throw a *YAMLException*. +You can iterate over a mapping or sequence as if it was an associative or normal array, +respectively. If you try to iterate over a scalar, it will throw a *YAMLException*. -You can iterate over subnodes using *Node* as the iterated type, or specify -the type subnodes are expected to have. D:YAML will automatically convert -iterated subnodes to that type if possible. Here we specify the *string* type, -so we iterate over the "Hello World" sequence as an array of strings. If it is -not possible to convert to iterated type, a *YAMLException* is thrown. For -instance, if we specified *int* here, we would get an error, as "Hello" +You can iterate using *Node* as the iterated type, or specify the type iterated nodes +are expected to have. D:YAML will automatically convert to that type if possible. Here +we specify the *string* type, so we iterate over the "Hello World" sequence as an array +of strings. If it is not possible to convert to iterated type, a *YAMLException* is +thrown. For instance, if we specified *int* here, we would get an error, as "Hello" cannot be converted to an integer. -The *Node.as()* method is used to read value of a scalar node as specified type. -D:YAML will try to return the scalar as this type, converting if needed, -throwing *YAMLException* if not possible. +The *Node.as()* method is used to read value of a scalar node as specified type. If the +scalar does not have the specified type, D:YAML will try to convert it, throwing +*YAMLException* if not possible. -Finally we dump the document we just read to ``output.yaml`` with the -*Dumper.dump()* method. *Dumper* is a struct used to dump YAML documents. -The *dump()* method writes one or more documents to a file, throwing -*YAMLException* if the file could not be written to. +Finally we dump the document we just read to ``output.yaml`` with the *Dumper.dump()* +method. *Dumper* is a struct used to dump YAML documents. The *dump()* method writes +one or more documents to a file, throwing *YAMLException* if the file could not be +written to. -D:YAML doesn't preserve style information in documents, so even though -``output.yaml`` will contain the same data as ``input.yaml``, it might be -formatted differently. Comments are not preserved, either. +D:YAML tries to preserve style information in documents so e.g. ``[Hello, World]`` is +not turned into: + +| ``- Hello`` +| ``- World`` + +However, comments are not preserved and neither are any extra formatting whitespace that +doesn't affect the meaning of YAML contents. ^^^^^^^^^ Compiling ^^^^^^^^^ -To compile your project, DMD needs to know which directories contain the -imported modules and the library. You also need to tell it to link with D:YAML. -The import directory should be the ``source`` subdirectory of the D:YAML -directory. You can specify it using the ``-I`` option of DMD. The library -directory should point to the compiled library. On Unix/Linux you can specify -it using the ``-L-L`` option, and link with D:YAML using the ``-L-l`` option. -On Windows, the import directory is used as the library directory. To link with -the library on Windows, just add the path to it relative to the current -directory. +We're going to use dub, which we installed at the beginning, to compile our project. -For example, if you extracted and compiled D:YAML in ``/home/xxx/dyaml``, your -project is in ``/home/xxx/dyaml-project``, and you are currently in that -directory, compile the project with the following command on Unix/Linux:: +Create a file called ``dub.json`` with the following contents: - dmd -I../dyaml/source -L-L../dyaml -L-ldyaml main.d +.. code-block:: json -And the following on Windows:: + { + "name": "getting-started", + "targetType": "executable", + "sourceFiles": ["main.d"], + "mainSourceFile": "main.d", + "dependencies": + { + "dyaml": { "version" : "~>0.5.0", "path" : "../../"}, + }, + } - dmd -I../dyaml/source ../dyaml/libdyaml.lib main.d +This file tells dub that we're building an executable called ``getting-started`` from +a D source file ``main.d``, and that our project depends on D:YAML 0.5.0 or any newer, +bugfix release of D:YAML 0.5 . DUB will automatically find and download the correct +version of D:YAML when the project is built. -This will produce an executable called ``main`` or ``main.exe`` in your -directory. When you run it, it should produce the following output:: +Now run the following command in your project's directory:: + + dub build + +dub will automatically download D:YAML and compile it, and then then it will compile our +program. This will generate an executable called ``getting-started`` or +``getting-started.exe`` in your directory. When you run it, it should produce the +following output:: Hello World - The answer is 42 + The answer is 42 ^^^^^^^^^^ Conclusion ^^^^^^^^^^ -You should now have a basic idea about how to use D:YAML. To learn more, look at -the `API documentation <../api/index.html>`_ and other tutorials. You can find code for this +You should now have a basic idea about how to use D:YAML. To learn more, look at the +`API documentation <../api/index.html>`_ and other tutorials. You can find code for this example in the ``example/getting_started`` directory in the package. diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js index a80c63a..0091a10 100644 --- a/doc/html/searchindex.js +++ b/doc/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({envversion:42,terms:{represent:2,all:[1,3,4],code:[1,3],representmap:3,scalar:[1,2,3,4],follow:[3,4],decid:3,"const":3,show:[0,3],readabl:0,representsequ:3,program:4,digit:[3,4],sourc:[3,4],everi:3,string:[0,3,4],powervr:0,"void":[3,4],phobo:1,failur:3,veri:1,implicitli:[0,3],tri:1,gender:0,iter:4,"try":[3,4],item:0,path:4,refer:[0,3],slower:0,past:4,fold:0,second:[0,4],design:0,pass:3,rrr:3,even:[1,4],index:4,what:3,appear:1,compar:3,cast:3,preserv:[0,4],section:3,current:4,version:4,"new":3,method:[3,4],dyaml:[1,4],never:1,here:4,ggg:3,ldyaml:4,depend:[0,3],modifi:4,sinc:3,valu:[0,1,3,4],convert:[0,3,4],male:0,loos:1,datetim:0,omap:0,chang:[0,1,3],commonli:4,modul:4,unix:4,subnod:4,articl:[0,2],regex:3,from:3,would:[3,4],doubl:0,two:[0,1],next:[3,4],few:1,call:[3,4],msg:3,type:[1,2],tell:4,more:[0,4],sort:3,main:[3,4],phone:0,hold:3,must:3,addrepresent:3,word:4,alia:[0,1],work:1,itself:3,can:[0,1,3,4],learn:4,purpos:3,root:[3,4],overrid:3,want:3,stream:[0,1],process:3,templat:3,topic:3,tag:[1,3,2],tab:1,serial:[0,3],addconstructorxxx:3,cours:3,multipl:[0,1],newlin:0,quot:[0,1],getting_start:4,how:[3,4],foreach:[3,4],subdirectori:4,answer:[0,4],instead:0,simpl:[0,3,4],css:3,map:[1,2,3,4],mar:4,clone:0,variant:1,befor:3,ff0000:3,uint:3,mai:1,end:[0,1],data:[1,2],ani:[0,3,4],stdio:4,explicit:[0,3],correspond:3,ambigu:1,caus:1,inform:[0,4],green:[0,3],allow:[0,1],first:[2,3],order:[1,4],over:4,move:4,orang:3,becaus:1,yamlexcept:[3,4],hierarchi:0,still:[0,1],paramet:3,write:4,style:[0,4],precondit:3,window:4,complex:[0,3],therefor:[1,3],might:[0,1,3,4],alter:3,them:[0,1,3],good:3,"return":[3,4],thei:[0,1,3],python:0,auto:3,now:[1,3,4],introduct:[0,4],name:0,separ:0,each:[0,3],found:[3,4],went:3,complet:3,mean:1,compil:3,unequ:1,idea:4,"static":3,expect:[3,4],our:[3,4],happen:3,extract:4,out:[0,3],space:0,content:[1,3,4],rel:4,"0123456789abcdefabcdef":3,ref:3,red:[0,3],difficulti:1,advanc:0,"0123456789abcdef":3,mystruct:3,reason:3,base:[0,3],dictionari:0,put:3,org:[1,3],"byte":1,thrown:[3,4],pyyaml:[0,1],indent:[0,1],could:[3,4],keep:4,length:3,yamlcoloninflowcontext:1,confus:1,assign:0,radeon:0,oper:[0,3,4],rang:3,onc:[0,1],arrai:[0,1,3,4],sometim:3,restrict:1,unlik:0,alreadi:[3,4],done:3,construct:[0,3],miss:3,addconstructormap:3,size:0,seq:0,script:4,associ:[0,1,4],addimplicitresolv:3,system:[0,4],messag:3,gpu:0,white:3,conveni:0,"final":[3,4],store:[0,3],adher:1,consol:4,option:[0,4],especi:0,ishexdigit:3,specifi:[0,3,4],pars:[0,3,4],somewhat:0,exactli:4,than:1,serv:4,remov:0,structur:[0,1],charact:[0,1,3],project:2,str:[0,3],were:3,argument:3,packag:[3,4],have:[0,3,4],tabl:0,need:[0,1,3,4],"null":0,lib:4,alias:[1,2],constructcolormap:3,note:[3,4],also:[0,3,4],read:[0,3,4],take:3,which:[0,1,3,4],brace:0,channel:3,uppercas:3,compat:3,begin:[0,1],normal:4,previou:3,most:[0,3,4],detect:3,pair:[0,3],"class":[1,3],don:[1,3,4],later:3,flow:[0,1],doe:[0,1,4],bracket:0,cortex:0,fact:0,cdc:4,alphanumer:1,syntax:2,identifi:[0,3],find:[3,4],onli:[3,4],explicitli:[0,3],just:[3,4],explain:4,should:[1,3,4],meant:4,std:[0,3,4],get:[2,3],express:3,cannot:[1,4],report:3,whether:3,common:0,contain:[0,1,3,4],where:[0,3],wiki:1,set:[2,3],dump:[3,4],"float":[0,3],see:[0,1,3],result:3,fail:1,close:1,athlon:0,representscalar:3,wikipedia:0,written:4,simplest:4,"import":[3,4],signatur:3,accord:1,kei:[0,1,4],both:3,last:0,howev:[0,3],equal:3,comment:[0,4],etc:3,tutori:[2,3,4],context:[0,1],load:[1,3,4],point:4,constructcolorscalar:3,hyphen:0,loader:[3,4],colon:0,suppli:3,respect:3,addconstructorscalar:3,rgb:3,empti:0,implicit:[0,3],json:0,basic:4,xxx:[3,4],anywher:0,assert:3,togeth:3,input:[3,4],"catch":3,multi:0,ident:3,look:4,plain:[0,1,3],ffff00:3,easier:0,defin:0,ain:0,error:4,anchor:[1,2],readi:3,non:[0,3],archiv:4,tediou:3,ascii:[1,3],dumper:[3,4],disabl:3,clearli:1,make:3,same:[0,1,3,4],binari:0,instanc:[1,3,4],timestamp:0,android:0,document:1,difficult:0,http:1,nest:0,blue:[0,3],user:[0,3],implement:[1,3],markup:0,well:3,person:0,exampl:[3,4],command:4,thi:[0,1,3,4],everyth:3,left:0,ldc:4,systim:0,newest:4,execut:4,less:1,paragraph:0,gdc:4,human:0,languag:[0,4],struct:[1,3,4],libdyaml:4,interptet:1,except:[3,4],color:[0,3],add:[3,4],other:[1,4],els:0,match:3,build:4,real:0,format:[0,3,4],handl:[1,3],know:[3,4],world:4,recurs:[0,1],tolow:3,like:3,success:3,arbitrari:3,resolv:2,integ:[0,3,4],arthur:0,api:[2,3,4],singl:[0,1],output:[3,4],unnecessari:1,right:1,linux:[0,4],some:[0,1,3,4],guarante:3,ubyt:[0,3],librari:4,representcolor:3,lead:1,though:4,per:3,unord:1,condit:3,duplic:3,either:[0,3,4],object:3,run:4,acronym:0,usag:4,immut:3,rrggbb:3,unicod:1,chapter:0,comparison:3,about:[1,4],rare:1,usedefaultrepresent:3,page:0,regular:3,constructor:2,fals:3,produc:4,block:0,subset:0,within:1,encod:1,automat:4,bbb:3,bsd:0,mark:[0,1],your:[2,3],wai:[1,3],support:[0,1,3],question:0,"long":0,custom:2,writeln:[3,4],start:[2,3],"function":3,form:3,continu:0,link:4,line:0,opcmp:3,"throw":[3,4],consist:0,possibl:[0,1,3,4],"default":[0,3],displai:4,until:0,directori:[3,4],problem:1,similar:0,featur:[0,1],creat:[0,3,4],"int":[0,3,4],cover:4,dure:3,parser:[0,4],doesn:4,repres:[0,3,4],"char":3,exist:4,file:[1,3,4],yamlnul:0,isdigit:3,dent:0,check:[3,4],probabl:0,hex:3,when:[3,4],detail:[0,1],invalid:3,field:3,valid:1,bool:0,futur:[0,1],test:3,you:[0,3,4],node:[0,3,4],resolut:[0,3],sequenc:[2,3,4],consid:1,debian:0,reduc:0,longer:3,home:4,rule:1,hello:4,ignor:1,far:3,escap:0,cpu:0},objtypes:{},objnames:{},filenames:["tutorials/yaml_syntax","articles/spec_differences","index","tutorials/custom_types","tutorials/getting_started"],titles:["YAML syntax","Differences between D:YAML and the YAML specification","Welcome to D:YAML documentation!","Custom YAML data types","Getting started"],objects:{},titleterms:{compil:4,represent:3,set:4,syntax:0,scalar:0,code:4,download:4,instal:4,your:4,differ:1,welcom:2,start:4,custom:3,yaml:[0,1,2,3,4],explan:4,between:1,document:[0,2],type:3,map:0,get:4,sequenc:0,known:1,data:3,conclus:4,dmd:4,specif:1,list:1,resolv:3,project:4,alias:0,tag:0,constructor:3,anchor:0,first:4}}) \ No newline at end of file +Search.setIndex({envversion:42,terms:{represent:[],all:[1,3,4],code:1,representmap:3,scalar:1,follow:[3,4],decid:3,"const":3,show:[0,3],readabl:0,representsequ:3,program:4,digit:[3,4],sourc:[3,4],everi:3,string:[0,3,4],powervr:0,"void":[3,4],phobo:1,failur:3,veri:1,affect:4,implicitli:[0,3],tri:[1,4],gender:0,iter:4,"try":[3,4],item:0,refer:[0,3],slower:0,past:4,fold:0,second:0,design:0,pass:3,rrr:3,even:1,index:4,what:3,appear:1,compar:3,cast:3,preserv:[0,4],section:3,current:[],version:4,"new":[3,4],method:[3,4],dyaml:[1,4],gener:4,never:1,here:4,ggg:3,ldyaml:[],depend:[0,3,4],modifi:[],sinc:3,valu:[0,1,3,4],convert:[0,3,4],male:0,loos:1,datetim:0,omap:0,chang:[0,1,3],commonli:4,extra:4,modul:4,releas:4,unix:[],subnod:4,home:[],articl:[0,2],regex:3,from:[3,4],would:[3,4],doubl:0,two:[0,1],next:[3,4],mainsourcefil:4,few:1,call:[3,4],handl:[1,3],msg:3,type:1,tell:4,more:[0,4],sort:3,phone:0,hold:3,must:3,addrepresent:3,word:4,alia:[0,1],work:1,itself:3,can:[0,1,3,4],learn:4,purpos:3,root:[3,4],overrid:3,sourcefil:4,stream:[0,1],process:3,templat:3,topic:3,tag:1,tab:1,serial:[0,3],addconstructorxxx:3,cours:3,multipl:[0,1],newlin:0,quot:[0,1],getting_start:4,how:[3,4],targettyp:4,foreach:[3,4],subdirectori:[],answer:[0,4],instead:0,simpl:[0,3,4],css:3,map:1,mar:4,clone:0,variant:1,befor:3,ff0000:3,uint:3,mai:[1,4],end:[0,1],data:1,stdio:4,explicit:[0,3],correspond:3,ambigu:1,caus:1,inform:[0,4],green:[0,3],allow:[0,1],first:[],order:[1,4],over:4,move:[],orang:3,becaus:1,yamlexcept:[3,4],hierarchi:0,still:[0,1],paramet:3,write:4,style:[0,4],precondit:3,window:[],complex:[0,3],main:[3,4],might:[0,1,3,4],alter:3,them:[0,1,3],good:3,"return":3,thei:[0,1,3],python:0,auto:3,now:[1,3,4],introduct:[0,4],name:[0,4],instruct:4,separ:[0,4],each:[0,3],found:3,went:3,complet:3,mean:[1,4],compil:[],unequ:1,idea:4,"static":3,expect:[3,4],our:[3,4],happen:3,extract:[],out:[0,3],space:0,content:[1,3,4],rel:[],"0123456789abcdefabcdef":3,ref:3,correct:4,red:[0,3],difficulti:1,advanc:0,"0123456789abcdef":3,mystruct:3,standard:4,reason:3,base:[0,3],dictionari:0,put:3,org:[1,3],"byte":1,thrown:[3,4],pyyaml:[0,1],indent:[0,1],could:[3,4],keep:4,turn:4,length:3,yamlcoloninflowcontext:1,confus:1,assign:0,radeon:0,oper:[0,3,4],rang:3,onc:[0,1],arrai:[0,1,3,4],sometim:3,restrict:1,unlik:0,alreadi:[3,4],done:3,construct:[0,3],miss:3,addconstructormap:3,size:0,seq:0,script:[],associ:[0,1,4],addimplicitresolv:3,system:[0,4],messag:3,gpu:0,white:3,conveni:0,"final":[3,4],store:[0,3],adher:1,consol:[],option:0,especi:0,ishexdigit:3,specifi:[0,3,4],pars:[0,3,4],somewhat:0,exactli:[],than:[1,4],serv:4,remov:0,structur:[0,1],charact:[0,1,3],project:[],str:[0,3],were:3,argument:3,packag:[3,4],have:[0,3,4],tabl:0,need:[0,1,3,4],"null":0,built:4,lib:[],alias:1,latter:4,constructcolormap:3,note:[3,4],also:[0,3],take:3,which:[0,1,3,4],brace:0,channel:3,uppercas:3,compat:3,begin:[0,1,4],normal:4,previou:3,most:[0,3,4],detect:3,pair:[0,3],"class":[1,3],don:[1,3,4],later:3,flow:[0,1],doe:[0,1,4],bracket:0,cortex:0,fact:0,cdc:[],alphanumer:1,syntax:[],identifi:[0,3],find:[3,4],onli:[3,4],explicitli:[0,3],just:[3,4],explain:4,should:[1,3,4],meant:4,std:[0,3,4],get:[],express:3,cannot:[1,4],report:3,whether:3,common:0,contain:[0,1,3,4],where:[0,3],wiki:1,set:[],dump:[3,4],"float":[0,3],see:[0,1,3,4],result:3,fail:1,close:1,athlon:0,representscalar:3,wikipedia:0,written:4,simplest:4,"import":[3,4],neither:4,signatur:3,accord:1,kei:[0,1,4],both:3,last:0,howev:[0,3,4],equal:3,comment:[0,4],etc:3,tutori:[2,3,4],context:[0,1],load:[1,3,4],point:4,constructcolorscalar:3,hyphen:0,loader:[3,4],colon:0,path:4,respect:[3,4],addconstructorscalar:3,rgb:3,empti:0,implicit:[0,3],json:[0,4],basic:4,xxx:3,ani:[0,3,4],assert:3,togeth:3,input:[3,4],"catch":3,former:4,multi:0,ident:3,look:4,plain:[0,1,3],ffff00:3,easier:0,defin:0,ain:0,error:4,anchor:1,readi:3,therefor:[1,3],non:[0,3],archiv:[],tediou:3,ascii:[1,3],dumper:[3,4],disabl:3,clearli:1,make:3,same:[0,1,3],binari:0,instanc:[1,3,4],timestamp:0,android:0,document:1,difficult:0,http:1,nest:0,blue:[0,3],user:[0,3],implement:[1,3],markup:0,well:3,person:0,exampl:[3,4],command:4,thi:[0,1,3,4],everyth:3,left:0,ldc:4,systim:0,newest:4,execut:4,less:1,paragraph:0,gdc:4,human:0,languag:[0,4],struct:[1,3,4],libdyaml:[],interptet:1,except:[3,4],color:[0,3],add:3,other:[1,4],els:0,match:3,build:4,real:0,format:[0,3,4],read:[0,3,4],know:3,world:4,recurs:[0,1],tolow:3,like:3,success:3,arbitrari:3,whitespac:4,resolv:[],integ:[0,3,4],arthur:0,api:[2,3,4],singl:[0,1],output:[3,4],unnecessari:1,right:1,linux:0,some:[0,1,3,4],guarante:3,ubyt:[0,3],librari:4,representcolor:3,lead:1,though:[],per:3,unord:1,condit:3,duplic:3,either:[0,3],object:3,run:4,acronym:0,usag:4,immut:3,rrggbb:3,unicod:1,chapter:0,comparison:3,about:[1,4],rare:1,usedefaultrepresent:3,page:0,regular:3,constructor:[],fals:3,produc:4,block:0,subset:0,within:1,encod:1,automat:4,bbb:3,bsd:0,mark:[0,1],your:[],manag:4,wai:[1,3,4],support:[0,1,3],question:0,"long":0,custom:[],writeln:[3,4],start:[],includ:4,"function":3,form:3,continu:0,link:[],newer:4,line:0,opcmp:3,suppli:3,"throw":[3,4],consist:0,possibl:[0,1,3,4],"default":[0,3],bugfix:4,displai:4,until:0,directori:[3,4],problem:1,similar:0,featur:[0,1],creat:[0,3,4],"int":[0,3,4],cover:4,dure:3,parser:[0,4],doesn:4,repres:[0,3,4],"char":3,exist:4,file:[1,3,4],yamlnul:0,isdigit:3,dent:0,check:[3,4],probabl:0,want:3,hex:3,when:[3,4],detail:[0,1],invalid:3,field:3,valid:1,bool:0,futur:[0,1,4],test:3,you:[0,3,4],node:[0,3,4],resolut:[0,3],sequenc:[],consid:1,debian:0,reduc:0,longer:3,anywher:0,rule:1,hello:4,ignor:1,far:3,escap:0,cpu:0},objtypes:{},objnames:{},filenames:["tutorials/yaml_syntax","articles/spec_differences","index","tutorials/custom_types","tutorials/getting_started"],titles:["YAML syntax","Differences between D:YAML and the YAML specification","Welcome to D:YAML documentation!","Custom YAML data types","Getting started"],objects:{},titleterms:{compil:4,represent:3,set:4,syntax:0,scalar:0,code:4,download:[],instal:4,your:4,differ:1,welcom:2,start:4,dub:4,custom:3,yaml:[0,1,2,3,4],explan:4,between:1,document:[0,2],type:3,map:0,get:4,sequenc:0,known:1,data:3,conclus:4,dmd:4,specif:1,list:1,resolv:3,project:4,alias:0,tag:0,constructor:3,anchor:0,first:4}}) \ No newline at end of file diff --git a/doc/html/tutorials/custom_types.html b/doc/html/tutorials/custom_types.html index 1bc5a3e..d5da2bc 100644 --- a/doc/html/tutorials/custom_types.html +++ b/doc/html/tutorials/custom_types.html @@ -306,6 +306,7 @@ such as the color being white.

representer.addRepresenter!Color(&representColor); auto resolver = new Resolver; + import std.regex; resolver.addImplicitResolver("!color", std.regex.regex("[0-9a-fA-F]{6}"), "0123456789abcdefABCDEF"); diff --git a/doc/html/tutorials/getting_started.html b/doc/html/tutorials/getting_started.html index 2ad0d55..bb2c425 100644 --- a/doc/html/tutorials/getting_started.html +++ b/doc/html/tutorials/getting_started.html @@ -48,18 +48,18 @@

Getting started

-

Welcome to D:YAML! D:YAML is a YAML -parser library for the D programming language. -This tutorial will explain how to set D:YAML up and use it in your projects.

-

This is meant to be the simplest possible introduction to D:YAML. Some of -this information might already be known to you. Only basic usage is covered.

+

Welcome to D:YAML! D:YAML is a YAML parser +library for the D programming language. This tutorial will +explain how to set D:YAML up and use it in your projects.

+

This is meant to be the simplest possible introduction to D:YAML. Some of this +information might already be known to you. Only basic usage is covered.

Setting up

Install the DMD compiler

-

Digital Mars D compiler, or DMD, is the most commonly used D compiler. You can -find its newest version here. -Download the version of DMD for your operating system and install it.

+

Digital Mars D compiler, or DMD, is the most commonly used D compiler. You can find its +newest version here. Download the version of DMD +for your operating system and install it.

Note

Other D compilers exist, such as @@ -67,42 +67,26 @@ Download the version of DMD for your operating system and install it.

LDC.

-
-

Download and compile D:YAML

-

The newest version of D:YAML can be found -here. Download a source archive, extract -it, and move to the extracted directory.

-

D:YAML uses a modified version of the CDC -script for compilation. To compile D:YAML, you first need to build CDC. -Do this by typing the following command into the console:

-
dmd cdc.d
-
-
-

Now compile D:YAML with CDC. -To do this on Unix/Linux, use the following command:

-
./cdc
-
-
-

On Windows:

-
cdc.exe
-
-
-

This will compile the library to a file called libdyaml.a on Unix/Linux or -libdyaml.lib on Windows.

+
+

Install dub

+

dub is a build system and package manager for D. +It is the standard way to manage D projects and their dependencies, compilation and so +on.

+

DMD may include DUB in future releases, but at this point we need to install it +separately. See +installation instructions.

Your first D:YAML project

-

Create a directory for your project and in that directory, create a file called -input.yaml with the following contents:

-
Hello World :
-    - Hello
-    - World
+

Create a directory for your project and in that directory, create a new file named +input.yaml and paste this code into the file:

+
Hello World : [Hello, World]
 Answer: 42
 

This will serve as input for our example.

-

Now we need to parse it. Create a file called main.d. Paste following code +

Now we need to parse it. Create a new file with name main.d. Paste following code into the file:

import std.stdio;
 import yaml;
@@ -126,62 +110,70 @@ into the file:

Explanation of the code

-

First, we import the yaml module. This is the only D:YAML module you -need to import - it automatically imports all needed modules.

-

Next we load the file using the Loader.load() method. Loader is a struct -used for parsing YAML documents. The load() method loads the file as -one YAML document, or throws YAMLException, D:YAML exception type, if the -file could not be parsed or does not contain exactly one document. Note that we -don’t do any error checking here in order to keep the example as simple as -possible.

-

Node represents a node in a YAML document. It can be a sequence (array), -mapping (associative array) or a scalar (value). Here the root node is a -mapping, and we use the index operator to get subnodes with keys “Hello World” -and “Answer”. We iterate over the first, as it is a sequence, and use the -Node.as() method on the second to read its value as an integer.

-

You can iterate over a mapping or sequence as if it was an associative or normal -array. If you try to iterate over a scalar, it will throw a YAMLException.

-

You can iterate over subnodes using Node as the iterated type, or specify -the type subnodes are expected to have. D:YAML will automatically convert -iterated subnodes to that type if possible. Here we specify the string type, -so we iterate over the “Hello World” sequence as an array of strings. If it is -not possible to convert to iterated type, a YAMLException is thrown. For -instance, if we specified int here, we would get an error, as “Hello” +

First, we import the dyaml.all module. This is the only D:YAML module you need to +import - it automatically imports all needed modules.

+

Next we load the file using the Loader.load() method. Loader is a struct used for +parsing YAML documents. The load() method loads the file as one YAML document, or +throws YAMLException, D:YAML exception type, if the file could not be parsed or +contains more than one document. Note that we don’t do any error checking here in order +to keep the example as simple as possible.

+

Node represents a node in a YAML document. It can be a sequence (array), mapping +(associative array) or a scalar (value). Here the root node is a mapping, and we use the +index operator to get subnodes with keys “Hello World” and “Answer”. We iterate over the +former, as it is a sequence, and use the Node.as() method on the latter to read its +value as an integer.

+

You can iterate over a mapping or sequence as if it was an associative or normal array, +respectively. If you try to iterate over a scalar, it will throw a YAMLException.

+

You can iterate using Node as the iterated type, or specify the type iterated nodes +are expected to have. D:YAML will automatically convert to that type if possible. Here +we specify the string type, so we iterate over the “Hello World” sequence as an array +of strings. If it is not possible to convert to iterated type, a YAMLException is +thrown. For instance, if we specified int here, we would get an error, as “Hello” cannot be converted to an integer.

-

The Node.as() method is used to read value of a scalar node as specified type. -D:YAML will try to return the scalar as this type, converting if needed, -throwing YAMLException if not possible.

-

Finally we dump the document we just read to output.yaml with the -Dumper.dump() method. Dumper is a struct used to dump YAML documents. -The dump() method writes one or more documents to a file, throwing -YAMLException if the file could not be written to.

-

D:YAML doesn’t preserve style information in documents, so even though -output.yaml will contain the same data as input.yaml, it might be -formatted differently. Comments are not preserved, either.

+

The Node.as() method is used to read value of a scalar node as specified type. If the +scalar does not have the specified type, D:YAML will try to convert it, throwing +YAMLException if not possible.

+

Finally we dump the document we just read to output.yaml with the Dumper.dump() +method. Dumper is a struct used to dump YAML documents. The dump() method writes +one or more documents to a file, throwing YAMLException if the file could not be +written to.

+

D:YAML tries to preserve style information in documents so e.g. [Hello, World] is +not turned into:

+
+
- Hello
+
- World
+
+

However, comments are not preserved and neither are any extra formatting whitespace that +doesn’t affect the meaning of YAML contents.

Compiling

-

To compile your project, DMD needs to know which directories contain the -imported modules and the library. You also need to tell it to link with D:YAML. -The import directory should be the source subdirectory of the D:YAML -directory. You can specify it using the -I option of DMD. The library -directory should point to the compiled library. On Unix/Linux you can specify -it using the -L-L option, and link with D:YAML using the -L-l option. -On Windows, the import directory is used as the library directory. To link with -the library on Windows, just add the path to it relative to the current -directory.

-

For example, if you extracted and compiled D:YAML in /home/xxx/dyaml, your -project is in /home/xxx/dyaml-project, and you are currently in that -directory, compile the project with the following command on Unix/Linux:

-
dmd -I../dyaml/source -L-L../dyaml -L-ldyaml main.d
+

We’re going to use dub, which we installed at the beginning, to compile our project.

+

Create a file called dub.json with the following contents:

+
{
+    "name": "getting-started",
+    "targetType": "executable",
+    "sourceFiles": ["main.d"],
+    "mainSourceFile": "main.d",
+    "dependencies":
+    {
+        "dyaml": { "version" : "~>0.5.0", "path" : "../../"},
+    },
+}
 
-

And the following on Windows:

-
dmd -I../dyaml/source ../dyaml/libdyaml.lib main.d
+

This file tells dub that we’re building an executable called getting-started from +a D source file main.d, and that our project depends on D:YAML 0.5.0 or any newer, +bugfix release of D:YAML 0.5 . DUB will automatically find and download the correct +version of D:YAML when the project is built.

+

Now run the following command in your project’s directory:

+
dub build
 
-

This will produce an executable called main or main.exe in your -directory. When you run it, it should produce the following output:

+

dub will automatically download D:YAML and compile it, and then then it will compile our +program. This will generate an executable called getting-started or +getting-started.exe in your directory. When you run it, it should produce the +following output:

Hello
 World
 The answer is 42
@@ -190,8 +182,8 @@ The answer is 42
 

Conclusion

-

You should now have a basic idea about how to use D:YAML. To learn more, look at -the API documentation and other tutorials. You can find code for this +

You should now have a basic idea about how to use D:YAML. To learn more, look at the +API documentation and other tutorials. You can find code for this example in the example/getting_started directory in the package.

@@ -211,7 +203,7 @@ example in the example/getting_st
  • Getting started