åž‹
Author: 森 洋久 / joshuaï¼ globalbase.org +
*
Abstract
*
[1] åž‹ã¨å€¤ã®æ¨™è¨˜
*
[2] 基本型
*
[3] æ–‡å—コードã«ã¤ã„ã¦
*
[4] æ§‹é€ åž‹(LISPã®Så¼ã«å¯¾å¿œ)
*
[5] 環境
Abstract
XL ã§ã¯ã€åž‹ã¯å€¤ã«ä¸Žãˆã‚‰ã‚Œã¦ã„る。ã“ã“ã§ã¯ã€XLã«ãŠã‘ã‚‹åž‹ã¨ã€ãã®å®Ÿæ…‹ã€ã¾ãŸåž‹ã‚„å¤‰æ•°ã®æ¨™è¨˜ã«ã¤ã„ã¦è¿°ã¹ã‚‹ã€‚
[UP]
Go To Page Top
[1] åž‹ã¨å€¤ã®æ¨™è¨˜
XLã§ä½¿ç”¨ã™ã‚‹å€¤ã®ç¨®é¡žã¯ä»¥ä¸‹ã®é€šã‚Šã§ã‚る。
exp ::=
fundamantal-exp (基本型)
structured-exp (æ§‹é€ åž‹)
function-exp (関数型)
environment-exp (環境型)
[UP]
Go To Page Top
[2] 基本型
XLã§å®šç¾©ã•れる基本型ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã‚る。
fundamental-exp ::=
integer
表記:XMLæ–¹å¼,LISPæ–¹å¼ã¨ã‚‚ã«åŒã˜
floating-pointï¼ˆæµ®å‹•å°æ•°ç‚¹ï¼‰
表記:XMLæ–¹å¼,LISPæ–¹å¼ã¨ã‚‚ã«åŒã˜
string
表記:
XML è§£æžæ–‡å—列
LISP "..."
symbol
表記:
XML ^... (最後ã«ç©ºç™½ãŒå…¥ã‚‹)
LISP 以下å‚照。
raw
表記:
XMLå½¢å¼LISPå½¢å¼ã¨ã‚‚ã«åŒã˜
#byte数#...RAWデータ...
例:#5#!x$%~
error
表記:
%E(
エラーシーケン番å·(行番å·)
エラー発生siteã®URL
エラー発生ファイルå
エラー発生関数å
エラーコード
exp (ãã®ä»–ä»˜åŠ ãƒ‡ãƒ¼ã‚¿)
)
environment
表記:ãªã—
erroråž‹ã¯ã€ã‚¨ãƒ©ãƒ¼ã‚’処ç†ã™ã‚‹ãŸã‚ã®ç‰¹åˆ¥ãªå€¤ã§ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸé–¢æ•°ãŒæˆ»ã‚Šå€¤ã¨ã—ã¦è¿”ã™ã€‚一方ã€ã“ã®å€¤ã‚’å—ã‘å–ã£ãŸé–¢æ•°ã¯å³åº§ã«åŒã˜ã‚¨ãƒ©ãƒ¼ã‚’è¿”ã•ãªã‘れã°ãªã‚‰ãªã„。ãŸã ã—ã€ErrHandler関数ã¯ä¾‹å¤–ã§ã‚る。ã“ã®é–¢æ•°ã¯ã‚¨ãƒ©ãƒ¼ã‚’補足ã—ã¦ã‚¨ãƒ©ãƒ¼ã®å¾Œå‡¦ç†ã‚’ã™ã‚‹ãŸã‚ã®é–¢æ•°ã§ã‚る。
通常ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ—リタã¯ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã™ã‚‹ã¨ã€ãれをResult関数ã®å¼•æ•°ã¨ã—ã¦è¡¨ç¤ºã™ã‚‹ã€‚ã—ã‹ã—ã€erroråž‹ã®ã†ã¡ErrDontPrintエラーã¯ç‰¹æ®Šãªã‚¨ãƒ©ãƒ¼ã§ã€ã‚¤ãƒ³ã‚¿ãƒ—リターã¯ã“ã®ã‚¨ãƒ©ãƒ¼ã‚’å—ã‘ã‚‹ã¨ãªã«ã‚‚表示ã—ãªã„。ã“ã®ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã§ã‚¨ãƒ©ãƒ¼ã‚„データãŒãƒ«ãƒ¼ãƒ—ã™ã‚‹äº‹æ…‹ã‚’回é¿ã—ã¦ã„る。
[UP]
Go To Page Top
[3] æ–‡å—コードã«ã¤ã„ã¦
XLã®å‡¦ç†ç³»å†…部ã§ã¯ã‚らゆる文å—ã‚’32bit固定長ã§è¡¨ç¾ã™ã‚‹ã€‚ã“ã®æ–‡å—コードを内部文å—コードã¨å‘¼ã¶ã€‚内部文å—コードã®å‰²ã‚Šå½“ã¦ã¯
Table (ゾーン) ã®é€šã‚Šã§ã‚る。
Table ゾーン
| ゾーン | ã‚¾ãƒ¼ãƒ³ã®æ„味 | 割り当ã¦ã‚‰ã‚ŒãŸã‚³ãƒ¼ãƒ‰ |
| 0000〜 7FFF FF FF | 4ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰ | UCS |
| 80000〜 800FF FF | 2ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰ | JIS 第一水準ã€ç¬¬äºŒæ°´æº– |
| 80000〜 BF FF FF FF | 2ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰ | 未使用 |
| C0 000〜 DF FF FF FF | 3ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰ | 未使用 |
| E0 000〜 FF FF FF FF | 1ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰ | 未使用 |
UCSãŠã‚ˆã³JISã®é ˜åŸŸä»¥å¤–ã¯ã€UCSã‚„JISã¨ç•°ãªã‚‹ã‚³ãƒ³ã‚»ãƒ—トã®ã‚³ãƒ¼ãƒ‰ã‚’割り当ã¦ã‚‹ã“ã¨ãŒå‡ºæ¥ã‚‹ã€‚ç¾åœ¨ã¯EUCã€SJISã¯å…¨ã¦ãƒ‘ーザã«ã‚ˆã£ã¦JISã«å¤‰æ›ã•れる。
[UP]
Go To Page Top
[4] æ§‹é€ åž‹(LISPã®Så¼ã«å¯¾å¿œ)
LISPå½¢å¼
structured-type ::=
()
(exp exp ....)
([symbol 属性リスト])
([symbol 属性リスト] exp ....)
XMLå½¢å¼
([symbol 属性リスト] ....)
ã¯ã€
<symbolã¨åŒã˜æ–‡å—列 属性リスト> </symbolã¨åŒã˜æ–‡å—列>
ã¨ç‰ä¾¡ã§ã‚る。ãŸã¨ãˆã°ã€
([greeting
FirstName = "Hirohisa"
LastName = "Mori"]
"Hello World")
ã¯ã€
<greeting
FirstName="Hirohisa"
LastName = "Mori">
Hello World
</greeting>
ã¨å¤‰æ›ã§ãる。ã“ã®å ´åˆã€Hello World ã¯ä¸€ç¶šãã®æ–‡å—列ã¨ã—ã¦èªè˜ã•れるãŒã€ã“れを別々ã«åˆ†ã‘ãŸã„å ´åˆã¯ã€é–“ã« \ ã‚’ã„れる。ã¤ã¾ã‚Šã€
<greeting
FirstName="Hirohisa"
LastName = "Mori">
Hello \ World
</greeting>
ã¯ã€
(greeting [
FirstName = "Hirohisa"
LastName = "Mori"]
"Hello" "World")
ã¨ç‰ä¾¡ã§ã‚る。
属性値ã«ã‚·ãƒ³ãƒœãƒ«ã‚’定義ã—ãŸã„å ´åˆã¯ã€
(greeting [FirstName = "^symbol" ]
"Hello" "World")
<greeting FirstName = "^symbol"> Hello World </greeting>
ã¨ã„ã†ã‚ˆã†ã«ã€å±žæ€§å€¤ã®é ã« ^ を付ã‘れã°ã‚ˆã„。 ^ を二ã¤ç¶šã‘ã€" ^^symbol "ã¨ã™ã‚‹ã¨ã€ãれã¯ã‚·ãƒ³ãƒœãƒ«ã§ã¯ãªãã€" ^symbol "ã¨ã„ã†æ–‡å—列ã¨è§£é‡ˆã•れる。
[UP]
Go To Page Top
[5] 環境
変数ã¨å€¤ã®å¯¾å¿œè¡¨ã€‚変数ã®åå‰ã¯symbolã§ç¤ºã•れる。ã¤ã¾ã‚Šã€symbolã¨å€¤ã®å¯¾å¿œè¡¨ãŒç’°å¢ƒã§ã‚る。
通常一ã¤ã®ç’°å¢ƒã«ã¯ã€ä¸€ã¤ã®è¦ªç’°å¢ƒãŒã‚る。以下ã«è¿°ã¹ã‚‹ã€è©•価ã«ãŠã„ã¦ã¯ã€è¦ªç’°å¢ƒã®æƒ…å ±ã‚‚æ¤œç´¢å¯¾è±¡ã¨ãªã‚‹ã€‚
ã—ã‹ã—ã€é–¢æ•°ã®å¼•æ•°ã®è©•価時ã«ã¯ã€é–¢æ•°ã®å¼•数評価用ã®ç’°å¢ƒã‚’å…ˆã«è©•価ã—ã€ãã®å¾Œã€é–¢æ•°ã®ã‚«ãƒ¬ãƒ³ãƒˆã®ç’°å¢ƒã‚’評価ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ãŸã‚ã€è¦ªç’°å¢ƒã‚’二ã¤ã‚‚ã£ãŸåˆ†å²ç’°å¢ƒãŒç”Ÿæˆã•れる。ãŸã ã—ã€ã“ã®ç’°å¢ƒã«ã¯ã‚·ãƒ³ãƒœãƒ«ã‚„値をãƒã‚¤ãƒ³ãƒ‰ã™ã‚‹ã“ã¨ã¯å‡ºæ¥ãªã„。
評価時ã®åˆ†å²ç’°å¢ƒã®æ¤œç´¢é †åºã¯ã€ã¾ãšã€ç¬¬ä¸€ç•ªç›®ã®è¦ªç’°å¢ƒã€æ¬¡ã«ç¬¬äºŒç•ªç›®ã®è¦ªç’°å¢ƒã¨ãªã‚‹ã€‚ã—ãŸãŒã£ã¦ã€è¦ªç’°å¢ƒã«å®šç¾©ã•れã¦ã„るシンボルãŒå„ªå…ˆã•れる。
[UP]
Go To Page Top