From 32989605fbe9c59732c89f10a9645d3d24ca9b82 Mon Sep 17 00:00:00 2001 From: canonical Date: Wed, 28 Aug 2024 20:25:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/dev-guide/orm/index.md | 2 +- docs/dev-guide/orm/multi-datasource.md | 52 +++- docs/dev-guide/orm/multi-db.md | 88 ------- docs/dev-guide/orm/transaction.md | 2 +- docs/ppt/ref-images.pptx | Bin 63231 -> 73331 bytes .../simple/10-xdsl-used-in-codegen.md | 240 ++++++++++++++++++ docs/tutorial/simple/images/CodeGenTask.png | Bin 0 -> 15013 bytes docs/tutorial/simple/images/codegen-dsl.png | Bin 0 -> 67855 bytes docs/tutorial/simple/images/excel-to-obj.png | Bin 0 -> 43607 bytes docs/tutorial/simple/images/nop-cli.png | Bin 0 -> 14668 bytes .../tutorial/simple/images/workbook-model.png | Bin 0 -> 26849 bytes docs/tutorial/simple/images/xlang.png | Bin 0 -> 65571 bytes 12 files changed, 290 insertions(+), 94 deletions(-) delete mode 100644 docs/dev-guide/orm/multi-db.md create mode 100644 docs/tutorial/simple/10-xdsl-used-in-codegen.md create mode 100644 docs/tutorial/simple/images/CodeGenTask.png create mode 100644 docs/tutorial/simple/images/codegen-dsl.png create mode 100644 docs/tutorial/simple/images/excel-to-obj.png create mode 100644 docs/tutorial/simple/images/nop-cli.png create mode 100644 docs/tutorial/simple/images/workbook-model.png create mode 100644 docs/tutorial/simple/images/xlang.png diff --git a/docs/dev-guide/orm/index.md b/docs/dev-guide/orm/index.md index 8180e4380..bd307d85d 100644 --- a/docs/dev-guide/orm/index.md +++ b/docs/dev-guide/orm/index.md @@ -10,7 +10,7 @@ ## [事务管理](transaction.md) -## [多数据源](multi-db.md) +## [多数据源](multi-datasource.md) ## [数据修改历史](data-change-log.md) diff --git a/docs/dev-guide/orm/multi-datasource.md b/docs/dev-guide/orm/multi-datasource.md index d822bacf5..6fbec7a0f 100644 --- a/docs/dev-guide/orm/multi-datasource.md +++ b/docs/dev-guide/orm/multi-datasource.md @@ -3,6 +3,24 @@ 多数据源配置介绍视频: [如何在ORM引擎中同时访问多个数据库](https://www.bilibili.com/video/BV1aX4y1Y7Xx/) ## 数据源管理 +NopOrm引擎中每个querySpace对应于一个独立的DataSource。 + +可以配置多个DataSource,命名格式为 `nopDataSource_{querySpace}`。后缀名对应于querySpace + +```xml + + + + + + + + + + + +``` dao-defaults.beans.xml中配置了nopTransactionManager,它自动收集所有前缀为`nopDataSource_`的数据源定义 @@ -25,14 +43,14 @@ dao-defaults.beans.xml中配置了nopTransactionManager,它自动收集所有 ## 使用多数据源 -1. 在orm.xml的实体定义上可以配置querySpace +### 1. 在orm.xml的实体定义上可以配置querySpace ```xml ... ``` -2. 在sql-lib中可以配置querySpace +### 2. 在sql-lib中可以配置querySpace ```xml @@ -48,13 +66,39 @@ dao-defaults.beans.xml中配置了nopTransactionManager,它自动收集所有 ``` -3. 手工创建SQL对象并执行时可以指定querySpace +### 3. 手工创建SQL对象并执行时可以指定querySpace -```java +```javascript SQL sql=SQL.begin().sql("select * from xxx where id=?",3).querySpace("test").end(); jdbcTemplate.findFirst(sql); ``` +### 4. 直接为数据源指定dialect + +一般情况下会根据DataSource获取到Connection,然后猜测得到对应的数据库方言。如果需要,也可以直接指定 + +```yaml +nop: + dao: + config: + query-space-to-dialect: test=h2gis +``` + +上面示例指定querySpace=test对应的数据源使用h2gis这个方言 + +## 数据库事务 + +在NopOrm引擎中,只有ormTemplate.flush()调用的时候才会执行数据库操作,只有在flush函数中才会真正打开JDBC事务。因此业务处理异常时一般还没有执行数据库更新动作,不涉及到数据库回滚的问题。 + +对于多数据源配置,我们可以配置多个querySpace对应于一个事务组,则提交的时候会先执行所有数据库访问操作,等所有数据库操作都执行成功之后再逐个commit。 + +``` +nop.dao.config.txn-group-map= test=default +``` + +以上配置表示querySpace=test的数据库操作归属于default这个事务组 + + ## Excel模型配置 在表配置中,增加一个【查询空间】配置,通过它可以指定querySpace diff --git a/docs/dev-guide/orm/multi-db.md b/docs/dev-guide/orm/multi-db.md deleted file mode 100644 index 43855fa8a..000000000 --- a/docs/dev-guide/orm/multi-db.md +++ /dev/null @@ -1,88 +0,0 @@ -# 多数据源配置 - -NopOrm引擎中每个querySpace对应于一个独立的DataSource。 - -## 1. 配置多个DataSource - -可以配置多个DataSource,命名格式为 nopDataSource\_{querySpace}。后缀名对应于querySpace - -```xml - - - - - - - - - - - -``` - -在dao-defaults.beans.xml中,会自动收集所有前缀为nopDataSource\_的bean - -```xml - - - - - - - -``` - -## 2. 不同的实体属于不同的数据库 - -在app.orm.xml模型文件中,针对每个实体可以指定不同的querySpace - -```xml - - ... - -``` - -## 3. 在sql-lib中可以为SQL语句指定querySpace - -```xml - - - select location from test_geo - - -``` - -## 4. 直接执行SQL时指定querySpace - -构造SQL对象时可以直接指定querySpace - -```javascript -jdbcTemplate.executeUpdate(SQL.begin().querySpace("test").sql("update ...").end()); -``` - -## 5. 直接为数据源指定dialect - -一般情况下会根据DataSource获取到Connection,然后猜测得到对应的数据库方言。如果需要,也可以直接指定 - -```yaml -nop: - dao: - config: - query-space-to-dialect: test=h2gis -``` - -上面示例指定querySpace=test对应的数据源使用h2gis这个方言 - -## 6. 数据库事务 - -在NopOrm引擎中,只有ormTemplate.flush()调用的时候才会执行数据库操作,只有在flush函数中才会真正打开JDBC事务。因此业务处理异常时一般还没有执行数据库更新动作,不涉及到数据库回滚的问题。 - -对于多数据源配置,我们可以配置多个querySpace对应于一个事务组,则提交的时候会先执行所有数据库访问操作,等所有数据库操作都执行成功之后再逐个commit。 - -``` -nop.dao.config.txn-group-map= test=default -``` - -以上配置表示querySpace=test的数据库操作归属于default这个事务组 diff --git a/docs/dev-guide/orm/transaction.md b/docs/dev-guide/orm/transaction.md index e4063b3e0..4eb0328af 100644 --- a/docs/dev-guide/orm/transaction.md +++ b/docs/dev-guide/orm/transaction.md @@ -47,7 +47,7 @@ public class NopAuthUserBizModel extends CrudBizModel { ## 多数据源事务 -参见 [multi-db.md](multi-db.md) +参见 [multi-datasource.md](multi-datasource.md) NopORM引擎支持同时使用多个数据源,例如一些表存放在数据库A中,另一些表存放在数据库B中,它们映射到实体对象后可以存在于同一个OrmSession中。 缺省情况下,所有的的数据源都属于同一个事务组(txnGroup=default),当打开事务的时候会认为打开的是事务组,然后不同数据源的事务都挂接在这一个事务组中。 diff --git a/docs/ppt/ref-images.pptx b/docs/ppt/ref-images.pptx index 5c0cbe06120df4533ed7b71982c6408c3a333265..4a42f47ae95014b79bfaf9da546740c2d344a92d 100644 GIT binary patch delta 22317 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 Q?B|dM56^)N8!z5}09$D5e*gdg delta 13649 zcmZX*bzB_H(l)${ySqbx;O`5CE{mtRY~80$rd( zH3dltI?U8plfc-t9lQ~nK{qL=8BbwNFz5aK7)L$y5lT==9{UGEHs9?;4veidiSe3^ zCQ}c*jpBgxP6Dop?TRdC+2Z8NWC*er3{D~DC{ghu5>#7ydOOj2B}r)TEUkup+%J)j zWC#4#nDU3+Q{QHNm=nSR1~ZCZB0z*^bwAJ27v?DlNK6iUXt(0oaFIU^6bZJjf}cFt z%m>`b7k5j)%vOl=_ITO~6`#qzNmsAMlfCq_NtLk(;ntKJWug66fLw%A{Z>M-PP9kw zHiN7Pf{Mf2yTzMBA0-(6!y6(0&}^(I!y|inUt@l1(I-bv%`wg9+C;~eavbzbb<+bQ z#oHAXcy-VOpJxts@D`1>Q3Qu=(ZEJW}VjEbz^~%aH;rbS= zqQ7ceg~!(k{cbyuBcuN9CmKp78;f`o-iR2qy0R3GM zBdm<^b;@;JV=sP9EwX`AM1XNZp~~&r%UDvO+YoyJ{jRfu&8RPldTKEFP*Ndmgt`0- zPCt8r4ff`j?_6lk3Xyt|vc(3*E}uPw=0OoSUiBowVv__v z09vAsU(Wf5y87cLk35Xotz-%qV3jdD3EzZY7~s%=6sN29?2{;DYa-*f5vm8epTUlYZ=*OUk#-a~F0uOm?!CnvE@{hj(DMkm7RNDbts|ApW8K?Rs!) zxI%VBRnR!Vq7$T3HI^A)guc~1cYzON$ zMUqmXa~?vcxO2Oyx?hG_#H6rN!i zqcA^_zRMJ(h9=y9scyTN^)ZFycBlI@xRXTpBA+#!rvc<_9PhB&Yb#;UA$U)=_9gu7 znRJj;fUIg#XyiT@S<940!-tG19mS6r>E%eRwEBfv`$kn)LDTm!Uut&L8Y_wl+z8my zcKkV8UzRM))2d1PxED1fMG6t#VcZ}Q$5O)EXO4^=bVMVReJ^Lv*-m8LPP^YAxzxRE zME(x*!q>Prgl$44e7U?5SPV=7xi*eLC61GBG)Zo3sx5moRuDPK>KV6so<} zHdo+5rSHOZ@!FU{#B5pTGd+zq6paj}w)VTq3BF7ewA=nXsjZA@7*l&JvO6vnJ(1sE zmElb{%(LtLf;q{LhWLm8?izYxIk0r+pJ^X~2|3?EP*D?sLadRgUEP3T6&v6HUN+xZ zIOl_80c=t_kWiqH(m(e*RH{y3E*lxzK6di%?sAveyt;Lhr>-@>zHZ^K$%P{peXmYY zBAEalq;@Gj`HdppR3VE1yv+epvh`IFaO9`OIu2AlwZDy!h!=1` z?Bd^gc-SIF2FwtK!K)&}K?DHE0SG{dG76Bqt{e#&2vQDV!wEZ8d_vE^RWn)tV9Cx- z+s4K&022GuCli`dznTPcT21QaP;R$w7INC(?{lT7Uh|tz_5>8Xrzb#s4)mhH`kF#z zwe5cUv5q>E#~{D`GZcZ1I9SoozabzjinvV<-!e~lMao(l$vjnG-d#;>yn&S%!-ED~ zx;vP{04hRNUh_udLJH>Bd?uqNySi$me`A}reCg=`{j$$oSFW&OMEgh-+VT-*PV;N9 z!>}e=Sfcqon8j};c4`dcXFrWpo|q`TjZ@2;eX5vVdYD|QUJAT7;@_sdC0XdPbV01E z$BLAiPIP@FTh37-vWTkmt`MBCF3mHuWh5VI9}PVfn(K!kT z4+cBZMKhBDeP3cF*`*Bm3fMfH;x~0N-#s-TN~_iM(iOfDS73{nlf`)NMy8}mB7evC zIPWpd3QPJl)^Gerlhhf9Qv)GY7(k@Dw4gI6FgWlxI68C@F$?z;V*Yx(jMf>)#lwJ> zl~yvfZ)J}}DLB9X)KY<=GQd~qcW(}yGdO$BdO2T}0j0YF4OLk_GWF%eIZ~`rqxF8H zjX;6pp%Njxg3AOddGk)fzL9nN+R^m|4)!RBQA7p#u3 zG?y2eRv}bZ*$y@iaKCsWEU%0c`RxNT0@+I)PP!vBnij-7K>v_Pak@@C5%3Rv%vAac zPYiwV!|yqHxa=pmjyN??u=oMa-N?Ia2Fh%F6 zI$g0!Ss;NoGwjQC6BPJsw=dD*+h(q#|Bq5e$JG1Wr0 zNUs0TJK=SUVXIKJ$p&9C!iePwRG-F1aj%x;i8}OLs!22NVB24s-tQ3*2hnOGLkv_>%)AfmX`+Jg?&OnCae!;i%~-((#%WQ(Bqh) zYzUpj(tB^sY}ybyhgFvXsEY%G_*O$qBBJMsEJr4jvK>oYwM-JnH`vlH;QNpw!z42- zh-QP`v*k#OE8-Gx(8E4w;~jFShBs9Hpk$inCTexLu9n2-b)yk_?5Wur2aa`7+IDQD9k7N?rFQw488(eYEQ$=+g=WuX-WR z#Ol#`pgYQ)W=Fc`!vUV}g^;lyShh^xiwiC|aNo@?HOxQ=k}`8Fq=9YHjH^X*@XHm= zfuVUby4PloaBd>=M1lN6iNJ$Rb&HD&D?|U=%rOpM%hnQ_aB4XZoKUfP(Tpb&n)X!2 z5MDA#@oTvpzb$bct;Wd=5Ui4nDCBaJkd9Wo1`)%&!6i;T+ZTbM6t*k`hc&r$`U^g> z$vxq>^vhpYQG9@^ONw#%=DC`a-rmsOhTrhXsY5~}k3G~%{bn#QKl$iJBPMsNGD_gF z=ud2`vH~jeW8J!41f8+>6IkTK-Bbng$7aNN&PiNmK77B|2k`6Dfcl+c00CnCu-|Yu zE#ml&0wN>si7pu5v4k{kCLpIX4%%rx@s$WkU_v>1xw-5jaq9Q9)+MIRE# zz2?t#y;M}-O-Zw0+icAuW3L6oqHnUpVjcFM1;mg&>|KbA;jPbq7ycFuau38ig6m%8 zmSfcyO#7w>zS>Xz;Ob2OlAHTmrL1$S^d+S6T=dn(1WU$YA-0xe87ad80Bvdk%Q7!z16&_4E& zmD|wd%>s1lkOKY#iwDA*XFfyZz1(P?Ua-J~~eQ&32?*CeDh_>RU zE?;2)fStPd^k`_%K~%vP*Y+KaWEj}l z6?%b&SQynpMetnlEgNr!8ilqcuzTvlYn0`rwu<@!RTPLQl+S9590--b+*ksaCB z^;!BnP8&SWdv|cA4o@=`14Am*0Pb_pj>T&&YRjF;;Mv@_pY&(JO=>&9@Nn7X@D}hI5QpyGPrSZuvdt4%cQM@vPmVOGF)&%Iu!&&2!sWF(=m*nlO*WmJs0J=_OTWuKX&WW{jSWd zi@({6PUkS0IT)~XL*hwEZ7r*%z|)UBO@K9>txZsgqB>13@x$;Ae?nnp1{RNx%GbqF zfZTum>t4p**L^`@U&pua3v>cmi;Bri{OvVK1zf1AsRJ?=-#FzR};;?J$KLa0s1y7W#~@XgorhOsQ9 z(`Zj3dV9gX9NzSF(H@?3ueUmk&oHAka^4!u&G>ym{(Q$ovVPt$39+sFl!|2*AZp`l ze{1Z?p>8YgKuu!kl|I@t%3LxoKX|HVqTBhahUzHTx8%|tja<*LB6ZZ|QLO~LR=re* zq0@)aswF?;2dsCl`!RAGLHT`oz2J$${ZJle~P0b z4bk*moXl`9d&0R;+VSF!UY$AqG>d1~H~B%cgm7^1amUzkw#}+Ncbg5ljGJ$4FJr3e}3W?4hju3krnr`O)^ zp5LpW-^-${FVQgC8ufVR8nT9@Uv%aGAE==%u;BSRciJkqC`u2CSoJEg(IOa+U##)5 zZOuqKIM-#^%jbYA70fkmg(Z#($dRn+`yJ`#rk>lD8ml#q5 zu5NDbZwvO6%|wP&25~hZ(eTYg99)z&pUzyyEPw7$2)1t%7$MOcH-P5)#>73mu7Rwf z8h+SX=&bNdKe^+6alp?RD?H!8G~ScESKg=xPXv_0WPyV$n)lxGEZ zd39Go%}O=y^?n37^DXQ8Z$GcSa7u6Sveb6I(qp|$XeNogKrvh(x(!)&+|II!r($^b zjIvR#G#*D9%zm>n$V_jwohup>zec-|D3{WL^TUD|CNr0NFiAeN0w&xd8)bI?MUYbo zS#HWH;bP0YF=JkKWEyq!vxTqTz+O>o_L;ja_@LbRJKyjgmBV}vQlc4yTLQiWwMK#r zelWvE+YvWX053%TrIa^rIxYg8l^n1yQ$^A9wf z0i;x6Z(xVkn5z#~4>f4o-bp#sObpa(;$;nJ>QZkO0LN!YU#0%hEi4Vo(UO?o9xLA8}oFUVk1cpRiY4Fe86H~`>^{Eup` z8!lvo1%;+bgXbCza^NZpX){V2^vpS!l9BW zzTw)~0w~pCiQGxQxpGfT=-)+6jm)T`qn$&nUf1I>)ujht*1$ z$2hnwIFWS{yaM^c&=i#O(hU_N9N1?DE2p%eM#LS?N6+h%`x(Vk`-Sh%iAoFF!#ZV= z*eLQ^ZHsNM;j*VxNGmV~gLTjYP-oDeEduDI`r)^zsx39CLiM>S(jr>4jSsDU!~R)F z#8nAaW9nBsLA_42f)E;1$TRf=*NBQrPCW5Qn(5)!HB1*`OmX=6PJCBa^X)2<^kr1< zFA3z&6y4p_J_soIZGbddI3P~z7fR=ZxOw!g(7KdCWh>0Bq-(Jo*LA3b!@1Q1chTpg z>HTL3)uR-2vZ`4bZH?!t8Ro1|mcYzYsBJ>DZfJXGiKBRt&QPh1xO%#QWHroUOxTo1ZJEs*sQSr46LmB(5c4tyCsnQF zk|!RXE3_)_B*c3b$?@QYUCDCC7sFK>I3XC3<1jEfsikl~=G}L` zZ?C-&E6b4BpY@w24@Px3*B}m@ycxnPTsq(;sipLZabHhF1jRi3dV1?Q5Rbj1 zqmI+s8t5`sf3>_S3cA%syEnm(>p5m(yZ~eMTkV72i0$%e1F7A1oz$2e!#1;M1CkQ? zXv5*Ci^EEjtsc)V!DJQoIt!lV#CIO!xpK@ts&q|_;ipH-rRy2nRd=mJzQY|3frl#k zNX55h9mdnUK{nRBohfibKOo6_)^9aUx$0BGjy)$EvxFDsJKM$x)$2Yy^PDQRnpb9^ zFAV*lL&givo>4cGwHb zn{<<>=Rncb%!bs@;z5-u4bG4g4KYU+bv?SN+jlLY#JqsFk0$&6mNg5atc?#SV5B-QWNbn)5 zVnQ6U^m*{GX08F9@N`-21&)XRCSoB~ORbYavU5wYQgoD$t$s`^$T|0cawuv&XLVXn zf|?hMVd8Lr(;RX*AvGuRe0%%?{Ck4zhp5#)z8d$N_UDl zi%-i?N)HMwE0uHu=2lwPZ$JOT@EU?-bp~m}xnn~3X)y9E1$;<P=sy4`=LkbMDfGWp8CYY)X zvS{o7Op5%KAeN*g;!P{$`x>*YB&(B%@9EC?-rEg{r}?J{huYpeJ^jLxvMDNBHp?R@ z`$Hl&15IFMFk7R7na;53@~DNMihlh^5eLitIkw5~5ijK_JOz42{_$jlZV~(J3Nr`P zT1Z5<$s=YN<8U2A_ui~+Q+rssimHe@?R4g~71`zp#NL-q0Xu*Fdx!+Jjuy?Y=LiWH zbBGb7??l3lGqj#~hnDwq>1)~^9(T!ZRKh!~#H3r(`7}~?UZJ&P$1+)|QXDF74UGgU zy~sc$p{Y{kVhkkm!UM-;r=a7nBPq11ysA_?mPhA{Lwk2GmoC5Kz_@f)J@}g3I=DnO^5hio#wX#|G(;>B!lTG1C8RX{-+1bc| zhVx>06mA-gUY?%s)-poYJ>MFyryV)QX8qX9D0Lxy({FpfAz@INT=pg2kgVK{a-U5< z7FE?&glqNAPGkdjzv3sc19vL9hx4F(D{b#b@%-dBjC8&)$45u}go zxtON~PPVKPkEW)UQtWzoQ>6fD=?O$x&E+%$`$@lFBN#8j)qRtPa}N0|+)Vt1AyL|X zZ|xV*Nf#$KiRs)kDa6jMVcEjD{c_do@N@($vnA7no_X5&aGN$VlM!-UWxGo2J2^Oc zTAO`1_0`G`%jO_v*5%`?&;Na28tBoiz3%oRDerHRnK%&Pi%@5a8dfwO!u1io%5%t{yR6c1|hZ+%8a zue*OXrbP#(pBNl}J~2=~H?;o56@NGdpPKuno4Xu?uN0dh2hCxQlQm$^{XrJzp688@KYNe&bPZpvk<=u zhJwJNI*Zm3HOTR5p?*ia*_GBpiY zNbxCCayFBl8Xk4a;zSi1XBPp==RZ!Hqyc`LbPZ=B3?h)Q!YFI&r54$szU~0Gd!JPo z8I~^NzN3xVu>8C4i=%nTk#rv)Z52-GHmMZFo71J=ky(I|JBUCm+NFFSI{cnYHCZ6| z3?jEb?%vT*V_wcZU=-X)+YPc_vY*Pf6;^qyX7dti5Zc)|hRPY|V^!7|N5&3dQ-zM3 z@R6g2@7>m*hOddtt2G5)jpo{GD}MBCf^Iu*PsIwNi3zXM0JBu9CSMIOcA`7XU9z9q zpqnfWcHdMZ`bB_H&<{GH6Frj0wd##@1`NvMbI}B(R^GU!glekdL)T*9>AqKhC!5ph zsTgEhWGqC%UE=W17F&Sg;bB?^yKjtPjHbj`tn_HF2u*!yOF4aK+q8PpHIv5zi8{N~ z8%8e02R9`;4dqTJHSAQw#q~R!;5a;xe>AiBTA1Na6Qw;9I+Rp1<#rOlXEi3mcGT03Sun@mON|70so-)e zL2C)Kpa;1s;RL@btV2F{d`Mc0g>&oqv)l9OQs3ju<3dxGL+9OX+EQNZF|jds{kIe0 zOp&$$DmxI?1V=Z1;%?5l^|}Jpvef48!`08@{lSh35Kkld6K%J8RQ|3t8rObrWfTTm zbs4nGC3p6_0cV^^ZUbdeZ|bjSZ4voD6?eh$Vze9^#ND&*q0@4~x*W7a`${>!Z?i9; zKorGo+PiXs%cJ_rU26dkkCc9W=63-uTOT{8**QQSdlNtXwzjsn+n)W&E7&$F*}gfx z2(&%Uv{PrR>tQkdqO09(?Y`uO^^$E0wAB+}!&O{R9OEG!6Tbh9F^#2STqub6U0fR_ zm9sZ!E|A>RL$n@Vs1Vxc%VyiB!a^!|8vro^ba@&ELFo?k`e$Jaoz5cjJzG!dXecc3 zt1|>-;jS^TClmVqjwdrz;EfUy{JoMYMYKwoEC-Ew9DZzs`d@Fz-S%+|8N75u$obAB zsI&R^7KyZKj2K0knpgtKtZTcYV zS?|ptujucahZD~Vf;m?P=}8Kn1`;R?H3u-h0M#YjA2^z)~>^D^Cq)u71=r4LLMjeZW>%iJ4@0+2@27K6rF?i_ynpA?V-|~ zsFo%hQCzQ&@SQ#F_&|KB0IT*F=55(Z8(%n0%|L|#D9HjIw!~w=zTEs?S3l+;`!Sk2t88bGP&MVs@~Q?HzkL%u{8)b5WR{945J9_9{@$bc*H$IUbD$1S?Mg)#mA- zBP)o^J4t&sS}1)tOM_-jYvNuzCy@-NC$Q>-Ox@@44Jfe5I0ra(bruO-{44C!tMV7a z`SWT3j?TdYoip32Ragll&^u6l{|$Im|EQg&zD;sv@=^?;@{+h%IFgK*DnXEUSt_hJ z0Sa@g^)JC+&jsGQs`98pd;f~w+x*J8_w9b-Yt3Y){(Edof@IBft4julXq3fLwYdPi2f0kC%L5;cl0Ce&S3f_yHqFmmP**0p?WeKfQht!p@q#;hk&Wh5 zyjqt47+-a8{rZCA+HQ?WyP^83>f@44E~O!F!)!dKJ4aW#Wx(3ufcWfqh&Yj@`?|9?#Tz&!TS2fBM=r)K7)$^|F*D-;YJ}mqg=5?z^I^+ zP^ah`s8#sksc!mIdAqH&Sw}jt*s||-%&b6%WhV)_Z$~Xsg3^pbbB>mkw$Fl-cr>cf z?!i|7dT-vxl0m)`cXYXZRJf5PGxb;Wye*BjK!}agl<~5a{nYIZVMPP7^^2Z{&KzCS z0?BMD=i0K@^^9lKB4x?2nPw9M>Zq4d#~^_V2sIwF+Y1$Am8SbT0-B(=F`P*nlcy?r zX(}CgRMuxFq`Ck()mJEWQ2eX5ca;eC_C8E(3fqZ-EbRo2tx?`=O?41O_pmfTBDzeB z5Vm!kV4sM#0i#`H30Uc>FV9#X*@Hc%udFd(M&@TguR9@3L$bo>XeGI&sEYTTQrxTr z${lImEhtxL@(vd7*xmivs5r!>rbR3^Y=~6)nNH z6ddg?NFH3d?zO&5n;y*CT0evA45s982!#xc-oPzT$N_{cFj=)XltgN`WO; zF?m`K4XqH^#KnclzWl@Id|~${#2Cj7Bwu49P|H?}P_1YI^&yQkkbWk}j#B&dAb(|G zP|i%%aOdGsPPw>_htv;1{Mg?W>yX)GVIo0HNXzjWONFb?p@)mWc)J)#u+j$Ifho-C z{t4jt<;dbQ@4KHFvF9D|@M_JzmMzLM`u77ftW8||8W9c0^56Op97Xxa{YcDR z+umDPsRj|>yx1)g3u<>cfymY$O^I%{lfpU%ls%64;V8(c1NC@7V!xpJq~N5g4^3AE z?gdSB%6#LVcTb+BPeO%%J5W_ff#PgTq7=pK6#z9}t#z?z(B*l)izjT8R98NaCD;${ z8bdbyn{(oX%&4~ey?tJ4rS*k!+g5^dIYwdvy{UOi>g~{~I1eXkAl*c+*x{6^c6vB`Y=VH=ZBPn56iW8-z6owpCPkvy z>b&av3k9yGoR?|B334~3=VxMDt^=EQJfq^q#~)%?d19zkoCJfFx0Sb78rOXN4% zMw>l`6eTB}guGAhV~gG2H7QebLbS^+SZI)Y~fU$h%D zq0&hDv7-T#4L<>z2n9%~?44eonEz@-2n!Jq2^_UD56LD3!hk=HQ`I>vQoQ<%=VxKc zmAF5EE!SQ^&|>xMs{|e*_NPMmGogBYu3nMSm!^pm(G>gZG(8k@Cn3`=DR9wdIPu^4 zbSHXu4#i1nme{E+8FfosTj=h!l|R}hX(k`4(kP`@YYBd+-y|)i6FGNez681wVBw*i zlzz$YD^>2pN#L;^8{4{$98)`H(z|4a79!lL?7lxnVEAb)k3aVF?p1~3)^2>Jg4GPU zpACaRpnzl`MWF(!_u)ZQI zY7;h0`t`7l&vfrvKD{%U6krQ=C})+-p0Y~3*c9spNs*y$dg0){BVL<-^gTHKkVn(5 z+rro#D%~%^0`+yM!oy3;^|qKFU6#ZBI=O%!)r!IF_i9XY!|yAGr>N%o;CD%_Q*Twc z6D5PMvs0=OQIzZZe!6k&DjWs-tBMMu(8qhv7F1T0eVy5xE)L5*48X;At=M2qDl=&K zFon?62qHHslW&I8w@}6_7#=a}nlQ)xW<}NWd3rBypRuHnd_kDrw|!h1!T`~!;&jlF z+X$W5{BrR#d#9e1QLFJy-g^}0kLOF)hRUY)00Rj^fe?4;&c+odKlcs~wHIOs`^>j3 z)(ejvHW|}M+Dfvmva}^$3ix7U2}754sx}jTzkz?_G!R)B;3_QcQ^K`xQ#S&T76_VD z>SZGtI;HLG`~GO%bPo@4ptj|cdq*X`Rk0r+wl&Y-BSE|#a{=7&@L z%}Pz&cmyTsXLdy|b^T;5Mr`beUkr$wSVG>tj6xCs1HKRX33@_r!5GesW~Y3^OkiNv|%B#EV6~3n)}xtl?Ku!TW9jdf|qRMUcRzQeYcINKm-b% z$U@lTa;H3x4N91*ARWFGGGAl?6~RAe;{km7NApevh`1n`>AD;l`|+Z^<|FdVYE+%9r^^0NA{vN#xXjS!&mBUd7J?CkvEydPZbfnZMo^+H6ofj4EnlE(XN(_tpL_ZhNqC*n8oxkfb`o5>UN zax8?|U}NZKScow)5D)3!?*$+rWS}aL7BYQ zBOC!8i2G0fIfk$O6F{c1fLu^nMt|yH|5)Td;~{}`VFJ;hGL8QNxL*fL^8Y3j|2rW7 zAl(F_hyrB)N2aj(UzU(RG6gOE)?YJXxuEzh|H_XKM*1)LydVA&V?+L%$ZhqP%k&Qy zr!^!96UagGpA=f2KObrQcVV{yTg1KjGi?l#|76u+{V!_98S)bc$Vu{_j4|~8MVNa2 zL6AX|aDlia|0YHKFO1(0VoLZb=-=4<|01q~{t#F&nW*3i;MUNCW!Y6`!~G$ zzp(R|e_&C6VE=}5{ug$b@DFV159~i-3Jd^%>c7_tKm+*$BZmy*16iR+)4}N9SRi&7 zuPgT-SK$AT#V_L@7JB?w$^X8B|L*|GbN?BD*DDNiLioCu>x%zSupt}7KrDzC0gw}_ zrQ{z+Ep2y1nz{wyPuj~Df z0Jz%!2>4^+aY3Qf{f7W{Sp4t4uG+1PM-txuvHZPqw1Az~2q38>um9oc zRxsKI9^}WL`dkkLffOhKU9uOb*; `App = Delta x-extends Generator` + +为了将这个抽象公式落实为具体的技术实现,Nop平台内置了一系列的通用机制,用于实现Generator,定义DSL(Domain Specific Language),拆分、合并Delta等。这里需要强调的是,Nop平台相比于传统技术的本质性区别在于,它所提供的是可逆计算理论指导下的**通用解决方案**。在传统的技术视角下,DSL的设计完全是一种AdHoc式的边缘领域解决方案,是否有用全凭运气,完全通用的东西更是压根不存在。我们经常可以看到如下说法 + +> 自己重新定义一套DSL,去取代开发人员已经熟悉的java语言,哪来的自信比设计语言的大师更高明?更何况开发过程还需要各种IDE、debug环境与工具 + +正所谓人无法理解他尚未理解的事物。因为目前主流技术体系没有解决方案,所以导致很多人认为某个问题不存在通用解,更进而会认为某些问题压根不存在或不需要被解决:**不能被解决的问题会被潜意识的认为是不需要被解决的**。 + +Nop平台的设计目标是成为一个通用的领域语言工作台(Domain Specific Language Workbench),也就是说,它为创建新的领域语言提供了一系列的技术支持,力争将开发新的领域语言的成本降到最低。领域特定语言最重要的部分是它的语义结构(存在哪些领域特有的原子概念,以及这些概念之间如何相互作用),而表观的语法形式其实是一个次要问题。**设计并实现一个DSL并不需要从零开始,而是可以复用一系列的通用基础设施**。Nop的出现是通用语言设计发展到顶峰之后的自然结果,是通用语言自身基础设施标准化之后的进一步发展。实际上,在2024年开发一个新的通用语言,其成本已经远远小于20年前,比如Moonbit这样的十多人的小团队就可以开发新的语言。而开发一个DSL语言的运行时没有通用语言那样严苛的性能要求,可以通过Generator翻译为通用语言,其成本更是远小于开发一个通用语言。 + +Nop平台系统化的使用DSL来解决传统软件工程中的问题,这也导致它引入了大量的自定义DSL,在不熟悉Nop的同学看来,可能就是一堆xdef、xpl、xrun、xdsl,甚至还用上了antlr,这么多不同后缀名的DSL文件到底怎么协同工作的?本文就以XCodeGenerator的执行过程为例,讲解一下Nop平台代码生成器中用到的各种DSL。 + +## 一. XCodeGenerator的执行过程 + +  `App = Delta x-extends Generator`这个公式中提到的Generator是一个抽象概念,它泛指一切针对领域结构的抽象变换机制,具体的表现可以是一个独立的代码生成工具,也可以是某种内置在程序语言内部的宏函数(Macro Function)和元编程(Meta Programming)机制。XCodeGenerator是Nop平台内置的一个通用代码生成器。 + +> 参见[地表最强的模型驱动代码生成器NopCodeGen](https://mp.weixin.qq.com/s/rd36AFh5pmjwtRFmApRswg) + +一般情况下我们可以通过maven插件调用XCodeGenerator + +![](images/CodeGenTask.png) + +也可以通过nop-cli命令行工具来调用XCodeGenerator + +![](images/nop-cli.png) + +当我们通过命令行执行`java -jar nop-cli.jar gen model/test.orm.xlsx -t=/nop/templates/orm`命令时,它实际执行的逻辑用伪代码表达: + +```javascript + templateDir = "/nop/templates/orm" + modelPath = "model/test.orm.xlsx" + // 通过参数指定执行的模板目录和输入文件目录 + codegen = new XCodeGenerator(templateDir, targetDir); + codegen.renderModel(modelPath, scope); +``` + +XCodeGenerator的renderModel函数执行逻辑用伪代码表达: + +```javascript +void renderModel(modelPath,scope){ + // 解析模型文件得到模型对象 + codeGenModel = ResourceComponentManager.instance().loadComponentModel(modelPath); + // 设置到上下文环境中 + scope.setLocalValue("codeGenModel", codeGenModel); + // 执行代码生成模板 + execute(scope); +} +``` + +XCodeGenerator的execute函数用伪代码表示: + +```javascript +void execute(scope){ + // 执行templateDir根目录下的init文件 + runInitFile("@init.xrun",scope); + // 获取到init初始化代码所创建的NestedLoop循环模型对象 + codeGenLoop = scope.getValue("codeGenLoop"); + // 递归遍历每一个模板路径templatePath + // 使用NestedLoop.loopForVars(templatePath)来确定每个模板文件循环生成多少次 + // 针对每一个循环变量组合,执行一次代码生成逻辑 + processDir(codeGenLoop) +} +``` + +XCodeGenerator用到了如下DSL +![](images/codegen-dsl.png) + +## 二. 解析Excel文件得到ExcelWorkbook + +Nop平台解析Excel文件没有使用Apache POI库,而是从零开始实现xlsx文件格式解析器ExcelWorkbookParser。 + +```javascript +ExcelWorkbook wk = new ExcelWorkbookParser().parseFromFile(file); +``` + +ExcelWorkbook是Nop平台中针对Excel数据表格模型所定义的模型对象。它提供了对于Excel模型的一种简化描述,可以从xlsx文件解析得到ExcelWorkbook,也可以根据ExcelWorkbook来生成xlsx。 + +```javascript +new ExcelTemplate(wk).generateToFile(file, XLang.newEvalScope()); +``` + +ExcelWorkbook只支持Excel的一些基本特性(包括样式、图片等),大量高级特性并不支持。但是对于一般应用而言,ExcelWorkbook提供的信息已经足够丰富,作为报表导入导出而言一般不需要使用Excel的高级特性。 + +Nop平台区别于其他平台技术的一个典型特点是:**所有模型对象都有对应的DSL格式,而所有的DSL都有对应的XDef元模型定义**。举例来说,ExcelWorkbook是对表格数据模型的建模结果,它和Excel并不是绑定关系。Excel仅仅是ExcelWorkbook的一种序列化形式,它还可以序列化为一个更加简单的xpt.xml模型文件。 + +```javascript +ExcelWorkbook wk = (ExcelWorkbook) DslModelHelper.loadDslModel(resource); +DslModelHelper.saveDslModel("/nop/schema/excel/workbook.xdef", + wk, targetResource); +``` + +![](images/workbook-model.png) + +1. 首先定义workbook.xdef元模型,然后根据它自动生成ExcelWorkbook模型类的代码。 + +2. 根据workbook.xdef中的信息,可以将ExcelWorkbook保存为xpt.xml模型文件,并实现反向解析。所有使用xdef定义的DSL模型都可以自动实现解析和序列化。**如果类比于JSON序列化 = 对象+注解, 那么 DSL序列化 = 对象 + XDef**。因为Nop平台中XML和JSON可以互相转换。所以DSL模型虽然一般保存为XML格式,但也可以选择保存为YAML、JSON等格式。前台可视化设计器编辑的JSON对象可以自动保存为XML格式。**Nop平台强调的是同一信息具有多种展现形式(多重表象),在不同的展现形式之间可以自动进行可逆转换**。 + +3. ExcelWorkbook和xlsx文件格式之间的相互转换通过ExcelWorkbookParser和ExcelTemplate来实现。Nop平台没有使用POI库,而是自行解析xlsx文件(xlsx文件本质上是将一堆xml文件打包成一个zip文件)。需要注意的是,**Nop平台没有使用Java内置的XML解析器也没有使用XML标准中规定的DOM节点接口**,而是使用从零开始编写的XNodeParser和自定义的XNode结构。 + +> 一直有人对于Nop平台大量使用XML格式耿耿于怀,认为XML早已过时,凡是使用XML的技术都属于落后于时代潮流。但实际情况是,XML格式本身并没有太大的问题,使用XML遇到的很多问题本质上是来源于一系列XML规范和这些规范的实现过于臃肿繁琐。Nop平台通过自行实现XML结构的解析器、转换器等很自然的就避免了相关问题。参见[为什么Nop平台坚持使用XML而不是JSON或者YAML](https://zhuanlan.zhihu.com/p/651450252) + +这里有一个需要注意的地方是ExcelWorkbook对应的DSL文件格式一般是`xpt.xml`,即所谓的Xpt报表模型文件。因为在Nop平台的设计中,一个没有任何动态展开逻辑的Excel文件也是一个合法的报表模板文件,所以任何ExcelWorkbook都可以直接作为一个合法的`xpt.xml`来保存。 + +## 三. 解析ExcelWorkbook得到ModelObject + +Nop平台大量使用模型来表达需求信息,比如使用数据模型来定义数据库结构,使用API模型来定义后台服务接口等,这些模型都可以用XML格式的DSL来表达。但是XML是一种技术人员比较熟悉的语言,业务人员更熟悉的是Excel,如果能够让业务人员在Excel中直接编辑和查看模型信息,就可以直接将需求文档作为代码生成工具的输入,确保模型永远和代码保持一致。 + +Nop平台提供了一个通用的[ImportExcelParser](https://gitee.com/canonical-entropy/nop-entropy/blob/master/nop-excel/src/main/java/io/nop/excel/imp/ImportExcelParser.java),它可以根据`ImportModel`导入模型配置来自动解析ExcelWorkbook得到模型对象。解析的过程中会进行细致的字段验证,并且可以执行复杂的转换逻辑,如果发现错误会提示具体是哪个单元格因为什么原因报错。 + +![](images/excel-to-obj.png) + +传统的做法中,解析Excel总是需要针对特定的格式需求编写特定的解析代码,最终要求Excel的格式也必须严格的和解析时确定的格式一致。一些语义上保持不变的操作,比如增加空行、调整单元格顺序等,都会破坏解析代码,导致解析失败。 + +Nop平台提供的是一个通用解析器,它会根据ImportModel模型给出的信息来决定如何解析一个ExcelWorkbook对象,从它的单元格中解析出字段值,并执行转换和验证逻辑,最后组装出一个强类型的Java对象。在反方向上,对于一个给定的ModelObject,借助于ReportModel给定的信息,我们利用NopReport报表引擎来生成ExcelWorkbook对象。 + +需要注意的是,这里的转换逻辑比JSON序列化复杂,因为解析得到的模型对象丢失了Excel格式和布局信息,它和ExcelWorkbook的相互转换在两个方向上是不对称的,可以看作是JSON序列化的一种非对称扩展。 + +> **ExcelWorkbook + ImportModel => ModelObject** +> +> **ModelObject + ReportModel => ExcelWorkbook** + +ImportModel是ImportExcelParser在运行时所使用的模型信息,它可以保存为imp.xml文件,以DSL的形态存在。 + +### 报表模型ReportModel + +Nop平台提供了一个支持复杂行列展开算法和层次坐标的中国式报表引擎,参见[NopReport:采用Excel作为设计器的开源中国式报表引擎 ](https://mp.weixin.qq.com/s/_nKUiryetF2O5zSrPfU8FQ)。根据ModelObject来生成Excel的时候,一般不是简单的将属性值填到指定位置的单元格中,而是有可能具有复杂的嵌套子对象列表,需要执行判断、循环等操作动态生成行甚至生成列。因此根据ModelObject来生成ExcelWorkbook的时候实际上是通过NopReport报表引擎来执行。 + +ReportModel在NopReport引擎的实现中,是在ExcelWorkbook的基础上增加报表展开计算所需要的模型信息。 + +> ReportModel = ExcelWorkbook + XptWorkbookModel + +Nop平台对于ReportModel提供了多种表达方式: + +1. 通过xpt.xml这种DSL模型文件来表达,可以解析`xpt.xml`来获取ReportModel。而`xpt.xml`通过`workbook.xdef`元模型来实现约束。 + +2. NopReport也提供了以Excel为载体的模型定义方式,支持在普通的Excel文件中通过注解引入额外的配置。 + +3. 第三种ReportModel的定义方式是根据`imp.xml`导入模型配置,结合一个空的template模板,自动推导得到一个ReportModel。 + +![](../../user-guide/report/MOM-YOY-report.png) + +## 四. 统一的模型加载器 + +Nop平台中引入了大量的模型文件格式,同一个模型还可以对应于多种模型文件格式。比如说orm模型可以保存在`nop-auth.orm.xlsx`这种Excel文件中,也可以保存在`app.orm.xml`这种XML格式的DSL文件中。 + +Nop平台所提供的是一种所谓的面向语言(Language Oriented Programming)的编程范式,即在解决业务问题之前,我们先定义一个针对当前业务领域的DSL,然后再用这个DSL去解决业务问题。为了统一管理大量的DSL,Nop平台提供了统一的模型加载器。 + +```javascript +model = ResourceComponentManager.instance().loadComponentModel(path) +``` + +我们可以用ResourceComponentManager来加载所有模型文件。那么,ResourceComponentManager又是怎么知道文件和模型格式之间的对应关系的呢?不出意料,**Nop的标准套路是引入一个新的`register-model.xml`注册模型**。 + +```xml + + + + + + + +``` + +Nop平台启动的时候,会自动扫描虚拟文件目录中满足`/nop/core/registry/*.register-model.xml`模式的所有文件,并自动注册文件后缀名到模型解析器的映射关系。 + +在上面的例子中,以`orm.xlsx`为后缀的文件,将会使用ImportExcelParser解析,解析的时候使用的ImportModel信息来源于`/nop/orm/imp/orm.imp.xml`。而以`orm.xml`的后缀名的文件,将使用DslModelParser来解析,解析时使用的XDefinition元模型对象来源于`/nop/schema/orm/orm.xdef`。 + +## 五. 执行代码生成模板 + +代码生成模板中用到的xrun,xgen等文件格式,本质上都是XPL模板语言文件。 + +```xml + + + + + + + + + + +``` + +通过`xpl.register-model.xml`文件可以很明确的看出它们之间的关系和区别。 + +* xpl和xgen是一回事,只是在代码生成中使用时,xgen是一个被特殊识别的后缀,它执行完毕之后产生的文件会去除xgen后缀。例如`test/a.java.xgen`会生成`test/a.java`。 + +* xrun也是xpl模板文件,但是它不允许输出,仅仅用于执行代码。 + +**调试模式下,Nop平台启动时会在`/nop/main/registry/app.registry.xml`文件中输出所有register-model的内容。可以查看这个文件来获知统一模型加载器能够识别的所有文件后缀**。 + +### XLang语言 + +xpl模板语言是整个XLang语言家族的一部分,而XLang语言是Nop平台的一个关键基础设施,它提供了一系列的子语言,共同形成一个内置支持差量概念、支持编译期元编程,支持`Delta x-extends Generator`这样一种计算模式的程序语言族。具体介绍参见[xlang.md](https://gitee.com/canonical-entropy/nop-entropy/blob/master/docs/dev-guide/xlang/xlang.md)。 + +![](images/xlang.png) + +* Xpl模板语言支持类似Vue标签的标签库机制,标签库使用Xlib这个DSL来表达 + +* Xpl模板语言可以通过内置的``标签调用XScript脚本语言 + +* XScript是一种语法类似TypeScript的脚本语言,它的解析器通过antlr工具生成。 + +* Nop在Antlr的基础上做了扩展工作,可以自动生成AST的解析器,而不仅仅是内置的ParseTree解析器,参见[Antlr4如何自动解析得到AST而不是ParseTree](https://zhuanlan.zhihu.com/p/534178264) + +* 生成XLangASTParser的时候需要使用XCodeGenerator,而这个时候又会用到XScript。也就是说生成XScript解析器的时候需要使用XScript语法,这里会出现循环依赖。Nop平台是先手写XLangASTParser和XLangASTBuildVisitor,完成最基本的代码生成器后,再逐步改成自动生成XLangASTParser和XLangASTBuildVisitor。 + +* Nop平台中**所有XML格式的文件都使用xdef元模型来定义自己的结构,它们统称为XDSL**。比如xpl模板语言对应于xpl.xdef,而标签库xlib对应于xlib.xdef。 + +* XDef元模型本身也通过`xdef.xdef`来进行约束,但是在具体实现层面XDefinitionParser解析XDef模型文件的时候是手工编写的,并没有使用自动解析,否则解析XDef需要先解析`xdef.xdef`会导致循环。 + +* Xpl虽然采用XML语法,但是它解析后得到的抽象语法树AST与XScript是一致的,都是XLangAST。 + + ```xml + + + ... + + + for(let x of list){ + // ... + } + + + ``` + + 上面的``标签和``标签中的for语句解析得到的都是ForOfStatement。 + +## 六. DSL背后的统一结构构造规律 + +Nop不仅仅是一种具体的开发框架,**它更是一种新的思维方式**。Nop解决问题的方式是先定义一个DSL语言去建立局部的描述框架,相当于是在广袤的模型空间中建立一个个的据点,然后不同的模型之间再建立自动转换的技术路径,通过完全自动化的推理就可以在模型空间中自由通行。传统的编程方案中,每个结构之间都需要手工编写代码建立联系,而在Nop的世界中,通过更高层次的元模型来俯瞰世界,发现林林总总的DSL背后存在着统一的分解、合并、转换规律,我们可以针对元模型进行统一的逻辑编写,然后自动适应于每一个特定的模型对象。 + +现有的低代码平台所做的工作都是试图建立一些AdHoc的开发模型,然后想着如何改善可视化编辑器,让用户更简单的可以使用编辑器去配置模型。但是Nop所思考的是完全不同的问题,它所关心的是所有模型背后的构造规律是什么,如何自动推导得到可视化设计器,如何自动推导实现模型之间的自由转换。 diff --git a/docs/tutorial/simple/images/CodeGenTask.png b/docs/tutorial/simple/images/CodeGenTask.png new file mode 100644 index 0000000000000000000000000000000000000000..2ffccd4bd3b7944ff07c7add9850962d5ec0e658 GIT binary patch literal 15013 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 XECJAmD?woV6h>B3Nuu_XN$CFon4C-; literal 0 HcmV?d00001 diff --git a/docs/tutorial/simple/images/codegen-dsl.png b/docs/tutorial/simple/images/codegen-dsl.png new file mode 100644 index 0000000000000000000000000000000000000000..feda2fc3dab67e1d8561943f6cd3fb7b918aacc8 GIT binary patch literal 67855 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%0A>Q`k11aK?FyJC;rX-fF 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�)aT-= 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 IKVSay{|#{8fB*mh literal 0 HcmV?d00001 diff --git a/docs/tutorial/simple/images/nop-cli.png b/docs/tutorial/simple/images/nop-cli.png new file mode 100644 index 0000000000000000000000000000000000000000..c078153f56373ea63bb87a598518c0dc2ccad174 GIT binary patch literal 14668 zcmY+LWmp|ilc0eRxVSq6cXxMp3GVKY;BLW#ySux)ySrO(2_9U-cD|k2nf=4%=?i_T zyXw>_c`IB=K@tHL7ZwZ*3_)5-Oa%-KA_w^06a)qQ>?P581p^}jlNJ+Jb=SYhf__pR zx_^YmP!&SK5JSfxZPqk_;UJ@Nt$qAO^6;a}Ai*ZKe5vW@t9DzE<3ndS6vcvb(k8XS=j z=-a#T=?ytuoSThW8$O(upV2P35bL^`=`p3v%ii zUPh^&iL09p)vxl0A1jQ$31?4qjMN2w1)1JCo~LC#{GGQtPyBS8Q)~-z>gon1f@kgZ zdrDD`!`|wj#485=TdGoGh;5(8td74gXImyQ{6_*WC!~)9NP?|7zAt0%FK0Do%&P3? z_3UcjA%oh2xw9;?J#;_*zU%e)zHhQj(CrszxvrN#{7RiE@3%_&e|mZ*Vltn^cAJ-` zY_rJmS!T_M5|Y9cN7Zcno4nD|dZSH3W0J@`!A@ed(=j&g9ajGhEi!b+eJTVJhe@~-7D=Z%zJ}Y zVX?B=z40K{sx!q`{AN)-t>HvAsI8oQ` zi`b^dd+bR}`dAp3NLpA48y7tPh7Toef}r-M;;TFf@A)maZJ*1FmTgx$n*EU&H^IM8 z1sQBsDgj=0dKH)uw$ZEJbf)| zHie-H4)lGW4^?Pcr`QrUOcUfct2-`F+g;9*P0rL^)FB&HzhZx#sf{JiKaW@yuY2~dKmB9)53`?W7olO6dvcARZ}%V#n=7A@`cmIsdo0)62bQ| zySgDv`xHIbG9ALoT~kPg_7f7fei+I`*eU+UP5aSUV*9T9W!4k;fOOL9DbDTI1Vw?h zEkJNzzku*xfcb9*K!4FxHYgwW?gx=r?KTca%rNOQNjalKUEQx3JeII49P~fI6pXqF z4DgK~J4z%q?-srrDCpc%;Vt>03UVjzJs)MvObLFx+5Z{BdW>h{9vl;v@1D3F;blbh=Zok( z3)Fq$9_vt3ea>fys1J}y4`!=TxgeL}f8os;>QE(wFYryM*G9n9FIX~C(XSXEbW-iq z9k@zLOlr?pb#w^T%T(6)x?q1?*7?@<_{(d?h<3D(jLpfA{tKUb?S{v37T&9{W&JM$ z?>|GAPx~>9QPvrD&1vUe2?#483qqjU6?j~>(f2chkDIPv&I|HeRwY^L51{gX?|Gar znEDb?fnazmwhdE9&D*|SE%(bhykun(Q31W5koa~G1)dBa0Rv6u*({Jm3gw?px2gVp z(Gv*|9tD;?i^P8y>$l}FLXZ&9FfT*fwmT5|8W^tZgJNj^ux3HH4YPdGFe9+>?Li_$ zC=R(7?(cq#;Dg>??jU#>zBStI81>5_n&Mr%pIsuZD_A%_hooM+^PdPjRF!V0_!UNi zZ!!vZ>)2_YP1byG3<^-n99Sd>C}k1J#X&hPw$-KBy4oV~6!hUQ2EGd)Ve zXZ&8&+a%Qud|cdm!J*y9isOi5KZBFykxE2f)36cat1)!lsf2p2lnQ`ynGZZL+pqiK z-i_u*k*P=^HZv?Wm`Ddl{MpH9)h503T{qnKqq=A$(couPWa-sB>FY;H^xK#377c&n zFonAV2D0U{qIbOHB(lUrX8+Pwy${y1ZcY0Q3=t*t0+9FdOEvJa$U!@!KOnR2!HlcE zuv;f?%SBqpfN?md&Iu(+C0K8p*f0|WK$#%UL$hfCenGPzu8HX?zKdEG1A{q7Y8?t5 zdq?2?Zb1bvbD3lFyJ*WWu1%tCWxaFn_#z>AAyKN_CLmDg+l^ zSRw4Ul?6q?tyyNs^+>Swxc7&RnJu5kt!@T3A}OIL>xf?995_ zAZ(@{V(%2?3uGb)7!d+|?&|KB({*-RdK?Hlv7P7RoJaFiRx9(e z{j7R%yh>=Fq;|u;qYZegD@Z$S$JsUrC3Qa(up%kpsp=f!B+^)=%+S;XeMHROt5($Z z?nGn+9K^~s477{%G9!BlLiP6Qad9A`LVEwcUR?p+R9$jZQ0{4-iuE=eGBPs(kGm!rJBw5!{ns8#HKaTI*k}Q1}2g$ZX#itE*3tMkLARxXIzqWWHz~ro;`Ovbq3>u}{PS1waQhK;OuxP2o`xljD6K+V4yl1v;+ z2|-3ngtv9xFmsvhag@fFQQz(-35K+*Vc@fL&VONVX$i@M)n|IV=`S4+W;bOC0T8x4FlRO%)*~B%A6;j z>aGXvmc5^}N2@*+?NlJ-8JE7#Sa)08dts#B*c1ipB)KM~DC7BGOB9+e{F|2JL5642 zljdQaQwQHT#*x5{O?v?6Lh(F_WL(h(1$w)$@w?~Vc3ZcibX!!GByUa~_m1a4Ysx`J zL`weD3Duw(OOdQ)j`O&rVepKsBPALMY|{6~?W@0kAA7tg3m&)qdYYqjZ0Mu>O&N%7 zVRyeq-iZ1$u?JNM*9Q8Jj3Qf#L0*3*u|kM{1N2s6H%X}=!G$NxmCFYNaZzF6_iZAO zAhxLWDAnkA#m@fn^Lkk1UK`}Hg?|C7QXd`;M3ab6J{^&_5X84cLWsgbVA&5l7_ytd zRqJYS2r?pEe$U1Xmu0OkGQn^a@*J^>6!+{>sA-*WS0_1p6>hPP>G+siov+r} zubHLT(H%7iC}~xwN%-qtd0n=Z3}sicR4Xry70c(^&*K757ZnCpwtNK$C8vF(dW2?` zGI-Ys1fclDT#?$);HnqECahu>bV+yYSC?u|h!OnTs?b$yu7d(@+g0}*a{g=L5fPis zGS=%bNh6av=XuYz={TZyHNTl48#=jB$%@uFQta~Q}QaLJd9e$NriIWC#_ zMgrjyQFSb7Khy)!_-d)c(2 zZ-aMRhD9XOrK$fr)1t<3Nim&m42Z_OyEWW(OkS;2bs))X2IC~Z{C552alFo9U)4kh zp?xh>%&G;gjTws%{j0`6@Y}k7@}J@i`|&#Rign~sB=A2dX}&MNyFTfm7Rd8>2g6fZeeAwEXZ@}?Y^v@6Quk7ecl=jNAnp5u}ESA#wfJ&de!3= zL02F4ZCtMUMqKxY6Pn|1;FO>E@At!E6pz9xt9uG)bM80bP0u>4t(G0r>mW2}^L$T8 z9wGLe^Cqd!;P|>FPH@c`rSj+&wMZw`Z|@v7TOFc>ZfDgr^wfSnZt{`RO-o@Kcso4i ze7ueP@m z{Ak^#=0YkX^w>a0>PF!4d~Knks$4w2V*?^g18#1(?07GN(G}QX-ud*$KsL9hu5Cpw zNJaLV4{npG%%PwtPNQkp)~NW;B|82&j8zjl{WF1Olq7pOAb?$m@(IJ zrqi1y8+%8BF3QRkkdO7f0}<)N0+ZvxC@LxLJsF@^=r8Vu)OQ0o7MZ&ozufnSJ@WB# zOZfO&wtYJ`fXo+mZ6iT}XDkYvx&N_hjqs>h4h$FK#<0M3mhFD=tCuvDf>)=82#|C& zz5>2NZ>3sqYl5*yR~jR31>NCK`T9;}z8GX|I+4)^kdJQpzFuHyJpd}F8cO;X+;7cE z655p>1%YX!6>8#Nav!uL8S+R+!HQzCczG&PmhvB|B14-k*YTYIS-;~z2*RzJM#OXB z^aMl4Bmz*xLLLn3W?o>kqp za_TfIaHC`cwGaD-DGpkE#K|@~DJ#yeyF3P=h{Vc5<%4^KsFS2}R5gX6ES-qFHmU1$ zbqo0+kwMAGR(UB_O_+?AM(3ZDJ&bI#OI{f4WcG*CUG*y78F5_VQxz}x{JSVs{vPES zugMe9qn6EeJ^spoWj%wpf?qN4d#8Rt$PPf@SnXvsE9CCH8K;#!!XWt*GA4dA)-bLu z&c9>|KLBodbQ_ae=l9Yj)v@Rxfsxx2lu1g8zVAPViQ$z_EiI0Kc}Jqv6Q|km;P@ew z#p_m`!30MP(~n9uCC8fdd_ds~qyRoEy~oCX9HLLnm7uEfyjk-DGZF_$sKMm}H+|PYoT8m`G6($RIN8+kc}sXA$3ybxEz! zO_D~u0mTHpcs{A^2Gi!!BZ4@W$|c(doYQ!=D(SOnAe6jZ;1|)cZz~doo3{>9O?`V1 zOHcKASaZVbUiIz|GB*+k4lfkd{vJSK2V{?bB5`Kk`k)DQd7N)1|HZL?aU?g26QE4v zf?CY3)1Pf4(vW6e|D{hjHmLS&L0vC?0VekAxaL3q6il1@n)x6dlgsMg7q;2T3N~eN zQFwiVMvSzhNqP=i+ku29u0BqTW5hTUOTW_0qNTZ&=Ha(@`~{N+R)@0N6;i_4He8^e zxc|uYBVe9v+hZk%nsj@toa`g?Dly{4fQ5O???vwv(Qn^N)ngt0BjKvuTNNiW9;6{| zt-bdoj)FH0OIx|K?=C~5qZd6DWB8$@olIT008QW=%NU^w#-1o8bO{{kW0->2$VQll z0tdX-bzD%1!7wnXrbb421-|-9^hnBwk?dE;t#PL-4{p-8MQC!pv)_^J$axN8MJb$) zQjJ1z_(;ba#%WKrs?Z6UtEeR}7*3r$%pJank%V!JCsN3dOTJT1+HSu47h*_$0YQ%@ zY3R3A=E2_Ll&puA?bS|uex3#rrVVtPSaZIOd}`Cmz1DDb>gjVasL}M$;|B;hI^?rl zXo1R_RE1g!>*5?w!^>^=eFVb%7zcPlfz1@NN~zoimLd|S*_}Y@N8|NQ(=^dGq*#Rl zdXp-wuTT$3Y<)q^Xo?vHsz+ZHOq+gbj<+}9wSHGlQ|yOUTj;J0C@G!N3&lZ7yKI$l zVCYwtE}26QC9M|roa^>^9i0&O88&ym8Kd-4Lx-bu8iPQ!r(?=7#w${Dalj*rz`|pR zq=3u*MPyxdN#j;&mpw>PF2tH6jTh9sEwb*s=`g~M0=pI>GJVf%GA#C`bWZbHkWrc4 zyuxK%g{gtB;E)GDd=NDRIzPIVd#EhD2^@-w><_;oetO?5jlB=T{Z0_(VMQ-bz+yzV z;lxiF!eNYzC#sU-YvgcM#>DA)!NQqJ{@o|YPh?$OX8EoXpQi$(SzWYgDv_r0Ad~*? zZ2M!ib%zLu4^b_Jg4OXNtSA}bmT8c+kl@dT`lLGd>-;3eUL$WJsJ8SB;}N5vtCf-U z(V4~{Cl2s1Ml3U^CD{{Cx5{ls6Fe;~z&FouNF4S4`>^p1@tz2e67NLd^?d(f+wVgr zhp~eJ0^H*|h}rOl(0wN$o?oF$XdiMQaM()Ku@M!Nw$PN!_A^MCRl~6-43aG|mWASy z-XrDXIcnxbP~dF4X_5U+F(twCfd8_+R(G}e(nK|<=*m-WDYXHJ)x4~z2hFd6+RMw# zq)^G1Y^nCEXaU0XOSKcIcGp#{PHX23SEQ}JCjs-!DijjR*pouV8!vDAQ-gH zyUb$`z`&eDLlNx?jnu1Zm{@G@m`H7hmBlOxRU=d9RZ*i6&G&$0fsuE*#C-fj1Am`7 zlpUKbTt6NPS?&O+VqQk{`S;r9Klj5cVi(p5Oi4*B5%S=PTj>_+`DkJmQ#)b7bf<8mP>Pd!^c|KyC#-5 zV;(qClVzg8sklR+8(oL$V+wNNT&GVLC&!MK{`OQj5K&;@`#g02dtv0m?$@PXF66$; zSyhXt&Lz`y%}!WQbSYDOGS37*xtvm)@KKX_pz9vr7_E^&0X8iT+(ihDuie+5i*l;B zJi`{FlcTNoSN)~GMH}%s3P`HMcyPQ#$wE>&$9PEPikOVjrP0|1CbOHTRw5Z9DQ##t zW~9D1iG6Jp|G_H)K~L=iL^d*K>gg>#k=(jHpL0qbY$&*=;qy1SC#~br+!Rf;{f`hu zSVM~GqEXWnDdMG5xD1EA&9x-PY0-WOtq0_T0ppZOcB zB8{gT^@_|74zyF-uN%50QU!h$*=izf-}@c4D%BAv@>bzjc$TwAC zKE~L>=LM-RwsWDJ*oYLj#n+uqu?!+wLBW~DZ((pTA*n#|DT7l4OPRp0I)|Hta>0o; zk;fyc(Ef~KfS0q3QLmO!I-jWh1Sx5|8Cz=DlXO(u=Oi%0ckAAYO?ehK_krA77HcbJ zSswO)JU_`gbFS9I#2}rf-)cXbD|`vKWQRkjG^`^rGBqZZJiC^=h^|a8+B0yKhhi>X zB`v(cXjb$>sSXmDgO29sMVpA#$O-m5yV5~n`LE1QU3a22cp#Tpu8@n~4NHl%GZ!kF zDccal^!ey(NzcCnUA*OrD*A{}yQ%D?*!Pvg%sD*GHf>I&$A$51rKzVzN1re1M!t}L z1eUsx#yy)R>>N=96EWObC9U6g(x{E#(_`Dd=9 zTOgFm%0HzV>8s?JvGeLbbz>hRG!!wq(K-{|Qwm?heb`VYo6+KqS2T)0_%au1sk)5k zqZk6Op_(&~oiZyejTo#QOg|a9TG;;<-l%sfSw7MZWdgGsN4SnDv*my&+uGXw@#-}A zga((U42@zr5n@^_6CTX0^mG^r<;f?On8xEob?Bnvt6WPv+a zT&{KK+^jn1DbEGdVC#6+Kx-5CSpvJ~on_0M1m5$WRsXoy5gMbOJ;eDNP(l6r?IQq7 zqbnRQ9e>}S78T)z(qY2+BcBYG?oyc(v=Z*Abk4V|>m=WDR^35SoEI@5dfNY2lxoxc z=d?Gfp}t5Zk%*+VNg@I`haEP?B{{ajVyei39BY)ub3YhSlne+afG9D z!nT-8$&#h=sg_Z5Scv~`FxP&%vkqn#7G(JcA5&ASl1#X;!m`4 zGUbC17N?ZqD^8ug{i9V z-OU$sosN2fCAeO;9V<}u9V1V*7cZ^$!%w{A5uiUKNHcroZ633P(BXC~d5J)ABgUo* zf8Pn*g}-oUN<=?mm8Pkz!#rX=Pcfw2Ur-RU(%<=Ew%BROJJA;i{n{2ADQ`H$rHLe( z0NbZngSQKwyU7g+T}wlG`eQiSBesckN|Gw>IVgcrgI(?mCr7VT_EjaE!k5Fwb|pN# zQ2*Z<1{_FsNT@EPqy3ey1c#=5g&~FH8F?04x=vGS>zViRRh)EXG0+Ghf;LaVd`!ta zFz8;B%p*@VTp13cI76h@KvLvUhE>j}aI4)PuALnf>V*kKK^q=~5`s|@gj(i(EN!Hk zzb5^5L zY?iQ(Lva^d{Z$qxR{JLpB88&uNNL2GI1gF;Pc9hB3!AcU>Pd#1<|PEk^@FB|zQFCVFFV55Y-O?>v< z@)wZ_RwoYHB$o(S>SAmSwFP3C&O?UGUR^(xQ|ymfusWk#R7&@isv z)s>%6OYMhp+eQ;i&?>07Xj1&zpEXmT(g=1nS5(KEo*KQ<`Az?sKJpVjOUa8DHnS*+ zwo*znKT;3n5K(d|hEZZvDUY+)P0t(V1M4)VfHfa3A!22{0a2m*UO1&n3d{oyzHPp3 zvBgDaToEU5302yRSxsu+L-{y8IAu?(FC-YMF!tF)!zFjjv z3|{gYJ9fAu)!|^T$OiTifyMTl@Z%a-vtw ziT_M~-`ldTsCuK&qc%Dl+eI=q8lWbQ7Fj}vBfx`wES4%IdpE-u#gxGjWhW4B*77ck zk&hVCNmY0$Dk^lKd}#d(cZ&%~Rrm99 zu0@YcdXLZ$Ovg+)mMOC=MhciIZN>PL&gWx=VNi#QX&PGD15A+^k@)eWGWp82mxCUD zx4J}G`-ULtJ%6TdD{hk_es0YPm+Q|~!rK#8q*hZSkUx&OFNKt%TSSSXByTFjJBEiIb^s3}moqb!O*(>saKyVFOpWAW z+B3nFK9okv*aheI8QPjoKXX%b1cKRcBpX|C#Tq$+ERrs0pAc$Gx^RC;JP8iTB2R`u zn)2dzU`(MdcbH zS^2yrw-_g(9}Q3V{GXxgoIHa6xHg%x${&6?3_~A=FE+4x$d4Z-rXH72<kU)LGYHc$76I5SS?+4i8;tE%>0=3a|rK5xzG^v1hD|BOxtN0P)QxDcLj( zoNbM%epO0YUshlN!ch{3J~U)wsatrw49SJ17+lGQHRnU8&$(T;FwXYGmc$)OBLl?1 zD2IY7*=gMnJLrcVPPwwDo2w?x#38lD=7f$BFP#lO30E5Pl|#kXZXe(ChYVp;7UrRm zdE*xQq1Zf5$!R|Pj7?&>z&YM_!SMLi-RC0$2`wqIKH}m^R@+T09R8CODSWZ`^yF%! zVvIL29@2QiOp3OaJ1%j8kyJ7AbTx9SH1k$TBlp;Tn{Z@zB6gUs;MR1e2vd7FIfvc0 z%PdS8r5O&GsO-&OXgzj4{>GY`grLo@S>#+y11O5>g+#-i#lAHnN%* zF?EuPh$vy6bIn@}Ulc>L8(5WOP8YxNrzGNBlh0i?7x>`xlIn?ls|5P?)!(+e+XP^F zdN?MlAf;xS=3r?;iGO(fym?uCkW*owfh=c0Y*ubI!Eo+l7y}2F{_amhPpu=3D38@G z!xFoz8CK<{+Ut?(`#?aJsSIE8h3JS^%!b%2%`}mg4{TXjlt@S@)LgD%WXAM1yzo=F zq%tN^YQroM7QCUH!_T>ReC4lJ9cAU=C~Go|%cfBB&}a7FYl znIj7dlOJ;oPWEda za;0&^vz8#sD?gIMN}&6h#GI4wIP?kW7*@d?b)alcXl#Bv_Ic7#z9FS=QzUXP>bdgW z7ESd_hZqP$5E`RkSu|I_AHhf&|**zDl0P${|)<$ z$#T^2(C`C2s5N!=U#UI>iSVx^C2n6}gFgP(i;^-cokS(sK^}@*`3jUHEu&et^T#oR zs6tkTA=@^t-6u}x6D2>KS9|jL1;>rXn-HNU6d_T^DfX2oYZ$n&Ehq8G5=aAzM>eRX zlUwF&d-WgBi+zIZW^ z5CEI)n{tO_pd2vKO0h=QZ8FC(sPw}WnbA?T*wf}j`@3@WUq*g60GNa-WTGZoYW;;w zXzQgMbGzfW+Zne)yWmwf7|m~{AU0fxbH!CpR!C*)8|gm~CW`p{yJzrk z8nEMj z+X7|sZ{i?p7IVa8GWoti`D5i8>HXy}VkL6OK?%>iV9c98iwRW9H)Fwt%lMr3nKgl{ z=7adQ=BUaJsHLT?X5b4j9n7OOl%hk}!Dzv0RAYv7b zbZV7uH}JYd2e#9tiWD!P;(2Q~Y0U}gC;}$Qr&4E9oq(CZlk}XpIeC|4i^x&-w!dhdRR#GoRAq9ujo7^wo}ZGZhHvtyu;1kORR0R%=Ax!hrn#j?`kWN` zg@4`UY`N-!zY!M~DnL4cB1t83eYZehfdanQX@>t;>gnIEfB;A2E8QaAdspDUUu?2$ zCf~qjHILM>Yg&3+o!aOk{}xb;%~tn)7pzGJsZc6yzaGFYHwg)Ccx5cp`VH1y3=ew&9bGqoLjC?1K^rbaC<#T= zJk4wqD0d#Zt{Opy5;*-+vG&E!M^t?|z+!rBYPycTjtgIPJ?d9$31~wv-AJ?pL}B~C zUZt#P>`!cV76|UFWXIBE)dAFv1v&ehp5s|2)cu5G9{@Id=Cq{8hES6bidWHfT{E*^ zQq!;ly6>VF*Fx8Z*iDEK8u}hZyg;q`&HrDEV5QCJcp1lASfc&Bexe<4oG-sLM>BrN z$-p@W7UId$HzgAO{>O-n-rE0THfkv1g189|L+h3@2_bke+>+7j%HkEf!1Mr|(Eff& zW2WX&-Dwwj6=1*c|Bw?a9GdPhmD5A$eCuk8VFM>{93_r^YXh9bFA(y&&A-;s6f#&B z09AQ#uFc=?FOo}>X%pwk$||~|A^xo$K)n5OsfDCiHhKK7B^9;?spUCD(P^R*vIy`1 zkAFr8UsVbuq8yzjnI+Exl#Wqyoad$O2g6Xhv7~ZhMF2&3kP1~hI7aUuBAS>c3PL<- z>{#@*djWDDZ|61{f>go5*$xVKhaIBNV@Yad%7MM>{qg=N`@A`}!R>r9OXIv$ZV3tL ztnXm_hH^Gj`T&akV_MVo;0QnkS)`Yz@|;@-qhZFTpo8#U07W}#NSx$8&b%xu$sTW@ zu6XSM5$zBsZ2rSvegS>b<*+L2hV5%mrrR%%%f%_fW z0mC*jF0d~;3(S~}%$Yi3LlKlm09B_ko6X_YB1SL*?w??m%!D}=6&6*E2||7eeML~a z#?a7Jj-b%#M!<)|(y?VGT#vP7mdXJf2??pcG*30nY96DP^4ZUG4q2#v%5;{gs2Jfy{ZQgkN| z;}7qmhBGr32!+Slvu``ZG%&!#dZ9z;z!wQLwO)ZWlgI^FDuE3s=Rp+7Rz24>^4li$ z+IG+;zzo_0+u(ttWz}egeMR>YXfjSZ_gC60RyL~(36apnszORjbhut<8?6RolX5(m z@{%+&!U%lvxtkNYo8U15Swe!kr1-Rr!Qi$4YOn}|V`T}*!3ZFlZs&C)FYU|!aBBd% zDqOPp;N*gc;eSX4PQMG8f?A@5`2UUPm+8pvzS zAt#J=fX|f8$*_+7OgITddzTLYys<4iN%+Nm2b>oS-FsTQ%%?+5Do9%gQUM@R}*=DWoy9a`Io^%vp2Y%Sn@IVqU19)-oi2^gcy zK(GX$XxXK3{+=>U;W89$x>kBWgOEL8juo?gK(9La zF~}My9o_F^zZo16iJqjIJ^)RX_`wP-J8DeCy7x5_i%ANHrY_Tje?tMACPSV<>-UX7 zj|qfAC|AR(%z_8?f{Y}i!G!jkVWBQ5y!u}0~V+9n=cQYEFg>Xw=vVcgy!&SJ# zMJDZ9e}vl>RjdLjl@fVNR1-%k$#ec3?D=?kajl*OK$Wyrzp5v2z~ki%|3aa?0Ayq9 zpZyU@8R!MWXxqa+144K7tR+ zB*%kt2ChhmqiJgVCVn>Ekym-QIZb)`C(xp(OW8v#NTWwKtE^2@BAm*{TtQ+F@z&!K zSfBZyzlp%|0u|tLZV?6 zCe)1`F+^(NOq^T0e9=aV-6rKZnA+^)a7Z}O>xYuOJMr!Gdv4Dyx3{wTc(B>C;^|MX z6q^IT?t)V+m!8gBK^uSXn6FhU@V!4c2XTpKcxQZ{Cim|KfUtMd!e`7S@tAe+&53c$ z2aGWm%RmF=R+^Ie$MA2<{vep{1-fK+zP{A-Ev>$*qYu}Z4EQ8GN~<)>QI-JOve$$(K(*Z>I%w~<1rUlf@Rg8Wd2!IX0B3@ zx*Qvx#NyCn1BDf$K{fS-ZG4(_N}ugbup04&$n2h2MPNYlblZrB+nIwD;M*afpvti` zjX4WpT;2dgVdnyzW8IQ;r9z{|e2~FGPC4H>PR0sDxGKN{Xo+@?L+L08!2PK;Jaz%X z)RlJGWqk~k9c1A~2z@D0m?&WhGSwR?60xPPLljlzP{RIEkuGgO?52;~4Gi39pN~SN z@tzeE&)R|-!=KTaYDsaKje}aSUXC)p759S7;p!NoQG&t@(ZuR0IPgeZvBo}OSh{Fh zM&zlPD`&fCBa|$;E#j3w1xcgd=at?c=v9ZSY>}_InszDQr4GzElu#-k2A6Xy_c%E2 zv4wFFNTMUcbcT&!40+$3t<3z(8ZuSu6|@6W(8B$b8Nz7jF8LE#ESI#XibhGAW>sLu zC!ERzN8T|HoA8R#k^CZ5)Gw%<}~j+%mbEX!QJ| zY0)&GFC2Duikff{e9yEWokV+85Rag$)bPWF)KV4oZUN--3?N+*Ijt9|IDz@AnLBI@ zIPk$IDZzgO3N1(JHtoS!`mLG-jlcfiC|!uq0*R8#5vv$1^=Ei$YavyC(@7!$Vu?zt zcu{(kB{NZ^=F%$?_Ci6DxE)qhaQdVj?PrF07+}zBMdIVdFT8@{BlQ04%BUkRE6i}@ zN-9KTz&7rQi2KOTmLtxVXl_tQ^Vf4En>NeWUFRQzZIUrxs(}D6x^qh6e~;rWehS!3 zoAHDnUuT1a4_GHM)E{r^ThnI#H{F*D0;x_24W!PHOcvkwAzKnbM($P)nX1`@*N7Wb zA^d0hZ(OuDb>`-}e*S;o6dS@$2)NAQZ;^ug-;;y?`93k!pE>7n*Q^NPf6WduL9Y7) zm+io6s#4M~bahY~&;IA@+_`^qe{<%OFE;-(g;*6TgeF}X`E1*@u_9snKi5NqwveAb ZCSMf4knoE}0#lM;(&7qY)gp#J{tumiQYioc literal 0 HcmV?d00001 diff --git a/docs/tutorial/simple/images/workbook-model.png b/docs/tutorial/simple/images/workbook-model.png new file mode 100644 index 0000000000000000000000000000000000000000..18ab78c025ed3fd0baaabf90dd2158dae81f1269 GIT binary patch literal 26849 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 NH!?RYF>t*5e*n>AMcDuV literal 0 HcmV?d00001 diff --git a/docs/tutorial/simple/images/xlang.png b/docs/tutorial/simple/images/xlang.png new file mode 100644 index 0000000000000000000000000000000000000000..3109574c630fc9cf266c4069172dd7bd7ce4dd67 GIT binary patch literal 65571 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 z

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 QnEQV{?d#BzOZNl+2f4wQZ~y=R literal 0 HcmV?d00001