[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GaucheはR5RS Schemeのパーザをいくつかの点で拡張しています。
'#|
' と '|#
' で囲まれたテキストはコメントになります。
ネスト可能です。
不正確な実数の整数部または小数部のいずれかが0の場合、それを省略することが
できます。例:30.
, .25
, -.4
。
数値のリーダは、パディングの'#
'を認識します。
複素数表記は直交座標形 (例:1+0.3i
) でも極座標形 (例:3.0@1.57) でも
認識されます。
非正確な実数は、正の無限大、負の無限大、非数(NaN)を含み、
それらはそれぞれ+inf.0
、-inf.0
、および+nan.0
と
表記されます。(-nan.0
も非数(NaN)として読まれます)。
シンボル名はデフォルトで大文字小文字を区別します (大文字小文字の区別参照)。
数字や'+
', '-
' で始まるシンボル名も、
トークンが有効な数値リテラルを構成しない限り許されます。
また、他の変な文字も '|' でシンボルを囲むことによってシンボル名に含めることが
できます (例:'|this is a symbol|
')。
シンボルも参照して下さい。
文字リテラルを文字コードにより表記することができます。
Gauche内部コードを使う #\xNN
と、
Unicodeを使う #\uNN
という表記があります。
文字を参照して下さい。
'#
' で始まる特殊構文がたくさん定義されています。
下の表を参照して下さい。
以下の表はシャープ構文のリストです。
| [R6RS][SRFI-22] これは、スクリプトのインタプリタ指定行(shebang)の 開始を示すか、リーダのモードに影響を与える特別なトークンとして読まれます。 下の`hash-bang token'の節を参照してください。 |
| 未使用。 |
| [R5RS] ベクタを先導します。 |
| 未使用。 |
| 二重引用符がこれに続くときは、不完全な文字列を表します。文字列参照。 |
| 未使用。 |
| [SRFI-10] リーダ構築子構文を先導します。 |
| 未使用。 |
| リテラルの正規表現を先導します。正規表現参照。 |
| [SRFI-38] 共有サブストラクチャの定義と参照。 |
| インターンされていないシンボル。シンボル参照。 |
| [SRFI-62] S式コメント。続くS式をひとつ読んで捨てます。 |
| 読み取り不可能オブジェクトを先導します。 |
| 未使用。 |
| デバッグマクロを先導します。デバッグ参照。 |
| 未使用。 |
| 未使用。 |
| [R5RS] 2進数接頭辞。 |
| 未使用。 |
| [R5RS] 10進数接頭辞。 |
| [R5RS] 正確数接頭辞。 |
| [R5RS] 真理値の偽、あるいは
SRFI-4 のユニフォームベクタを先導します。 |
| 未使用。 |
| [R5RS] 不正確数接頭辞。 |
| 未使用。 |
| [R5RS] 8進数接頭辞。 |
| 未使用。 |
| [SRFI-4] SRFI-4 のユニフォームベクタを先導します。 |
| [R5RS] 真理値の真。 |
| [SRFI-4] SRFI-4 のユニフォームベクタを先導します。 |
| 未使用。 |
| [R5RS] 16進数接頭辞 |
| 未使用。 |
| リテラルの文字集合を先導します。文字集合参照 |
| [R5RS] リテラルの文字を先導します。文字参照。 |
| 未使用。 |
| 補間された文字列を先導します。文字列の補間参照。 |
| 未使用。 |
| [SRFI-30] ブロックコメントを先導します。コメントは対応する ' |
| 未使用。 |
文字シーケンス#!
は、どこでどのように現れるかによって2つの全く異なる
意味を持ちます。
ファイルが#!/
もしくは#!
(ハッシュ、バング、空白) から始
まっている場合、読み込みルーチンはそれをスクリプトのインタプリタ指定行
(shebang) とみなし、最初の行末までを無視します。
(実際は、ソースはファイルでなくても構いません。リーダはポートの先頭かどうかで
判断します。)
その場合以外では、#!identifier
がひとつのトークンとして読ま
れ、特別な意味を持ちます。この種のトークンはデータとして読まれるのでは
なく、リーダに対して特別な指定を与えることもあります。
デフォルトでは、このような3つのトークンが認識されます。
#!fold-case
と#!no-fold-case
はリーダが大文字小文字を区別す
るかどうかを切り替えます。#!fold-case
に出会うとリーダは大文字小
文字を区別しないモードになり、#!no-fold-case
に出会うとその逆にな
ります。(大文字小文字の区別も参照してください。)
トークン#!r6rs
はR6RSで導入され、プログラムがR6RSに準拠しているこ
とを示します。GaucheはR6RSをサポートしていませんが、今のところこのトー
クンに出会っても警告を出すだけで読み込みは継続します。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Shiro Kawai on November, 22 2009 using texi2html 1.78.