- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
LLPMLはASTをそのままXMLで表記したもののため、非常に冗長です。
そのためタグの子要素になる数式で中置記法をサポートしました。
演算子の仕様はC#に準じています。
実体参照表記を避けるため、一部エイリアスを用意しました。
実体参照表記を避けるため、一部エイリアスを用意しました。<?llpml ?>の中に記述することでエイリアスを回避できます。
|CENTER:元表記|CENTER:エイリアス|CENTER:由来|CENTER:備考|h
|&&|andalso|CENTER:-|"&"が実体参照のため|
||||orelse|CENTER:-|↑とバランスを取るため|
|&|and|CENTER:-|"&"が実体参照のため|
|||or|CENTER:-|↑とバランスを取るため|
|^|xor|CENTER:-|↑とバランスを取るため|
|<|lt|less than|"<"が実体参照のため|
|>|gt|greater than|↑とバランスを取るため|
|<=|le|less equal|"<"が実体参照のため|
|>=|ge|greater equal|↑とバランスを取るため|
|<<|shl|shift left|"<"が実体参照のため|
|>>|shr|shift right|↑とバランスを取るため|
** 例 [#t8263f65]
[[IEEE 754/比較]]にも例があります。
以下、simpleが簡略版、complexが従来版です。
<var-declare name="a">2</var-declare>
<int-declare name="b">3</int-declare>
<string-declare name="fmt">a = %d, b = %d</string-declare>
<!-- simple -->
printfln(fmt, a, b);
<!-- complex -->
<call name="printfln">
<string name="fmt" />
<var name="a" />
<int name="b" />
</call>
<!-- simple -->
printfln("sub(%d, %d) = %d", t.a, t.b, t.sub());
<!-- complex -->
<call name="printfln">
<string>sub(%d, %d) = %d</string>
<struct-member ptr="t" name="a" />
<struct-member ptr="t" name="b" />
<invoke name="sub">
<ptr name="t" />
</invoke>
</call>
** コメント [#ob49080d]
#comment(below)