日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

五行通天地 八卦定乾坤--打算按照先天八卦的形制重构Lite模版引擎的指令集...

發布時間:2023/12/18 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 五行通天地 八卦定乾坤--打算按照先天八卦的形制重构Lite模版引擎的指令集... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

周末對 XML Lite 的源碼做了一些重構,做著做著一個更大一點的想法出來了,現在那些指令集,用先天八卦的方式重新組織一下,一定有點意思。先吧想法寫下來,順便整理一下思路。

?

這里說的是Lite的指令集,不是Lite XML的用法。當需要設計自己的模版語法時需要了解的內容。

?

?

五行通天地:處理表達式邏輯

?

?

表達式指令分兩部分:數據指令和運算指令


數據指令分以下五種類別

  • 變量類型:
    表達式渲染時傳入的對象的屬性(或者map的鍵值),都可以映射到模版的變量中。
  • 常量類型
    表達式中的字面量
  • 延遲節點:
    對于一些需要短路運算的操作(與或短路,三目運算),需要引入延遲計算的節點,來支持這類運算。
  • 新數組節點:
    用于創建一個新數組,或者函數調用參數列表(JS中的數組對象),這種類型可以歸為操作類,但是JSEL將其提升為數據類型。
  • 新鍵值集合節點:
    用于構造一個新Map對象,類似JS中的object對象。

例如:

${[1,var1,2,3,"end"]}

涉及到的數據指令有:

新數組指令,變量指令(var1),常量指令(1,2,3,"end")


運算指令分按優先級分九重

(九組二十三條指令)。

?

  • 指令編碼設計:
    操作符指令分三斷:
    000 1000 1
    組內編號|優先級編號|操作元素個數標記
  • 操作元素個數標記:
    二元操作符號為1,一元運算符為0
  • 優先級編號
    安高低順序重8-0共有9個等級
  • 組內編號
    最前面若干位表示該運算符所在的組內編號,確保唯一。

表達式解析過程和內部表示方法

表達式解析時,按照逆波蘭式解析成單棧數據,每個數據項可以是上述五種基本數據元素或者哪九組操作符號。

運算過程,無須考慮優先級,且保持單棧的運算模型

?

?

八卦定乾坤:處理模版指令集合

?

天地定位:
乾南坤北,天居上,地居下,南北對峙,上下相對。
乾是三陽爻組成,對應數字為:111=7;
坤是三陰爻組成,對應數字為:000=0;

坤卦對應的模版指令類別為:EL 表達式。
這是模版的基礎,所有的動態數據都是通過EL獲取的。
乾卦對應的模版指令類別為 :ADDON( 插件)。
當其他模版指令無法支持你需要的功能時,考慮使用,但是高處不勝寒,少用為妙。


山澤相離:
艮為山居西北,兌為澤居東南。
艮是一陽爻在上,二陰爻在下,對應數字為:001=1;
兌是一陰爻在上,二陽爻在下,對應數字為:110=6;
艮卦對應的指令類別:if
兌卦對應的指令類別:else


雷風相薄:
震為雷居東北,巽為風居西南。
震是二陰爻在上,一陽爻在下,對應數字為:100=4;
巽是二陽爻在上,一陰爻在下,對應數字為:011=3;

震卦對應的指令類別:XML屬性表達式 XML_TEXT
巽卦對應的指令類別: XML文本表達式 XML_ATTR

這是專門為XML語法設置的模版指令,
這些指令根據原始數據和XML語法約束,可以比較智能的輸出期望數據(如屬性輸出時的自動判斷)。
自動化的編碼處理,避免一些用戶粗心而導致的XSS漏洞。

水火不融:
離為日居東,坎為月居西;離為火,坎為水。
離是上下為陽爻,中間為陰爻,對應數字為:101=5;
坎是上下為陰爻,中間為陽爻,對應數字為:010=2;

坎卦對應的指令類別:for
坎卦對應的指令類別:break

水可滅火,當你需喲跳出循環,那就break吧。


兩個編外元素:
變量申明(1000=8)內容捕捉(1001=9)
兩者都可以在運行時產生變量數據,提供給其他模版指令使用,就把他們放在八卦中央吧。

總結

以上是生活随笔為你收集整理的五行通天地 八卦定乾坤--打算按照先天八卦的形制重构Lite模版引擎的指令集...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。