Specript Language Reference rev.0.7.0 | www.specript.org |
Specriptのソースコードファイルは、物理的にはShift-JIS、EUC-JP、UTF-8など Specriptコンパイラのサポートするいくつかのエンコードを用いて作成することが できます。
ソースコードファイルの作成にどのようなエンコードを用いても、Specriptコンパイラは、 読み込んだソースコードファイルを内部的にUnicode文字セットへ変換します。
Specriptでは、ソースコードは論理的にはUnicode文字セットで表現されたものとして 扱います。
Specriptのソースコードには、Java同様のUnicodeエスケープを記述することができます。
Specriptでは、以下のいずれをもソースコードの物理行末と認識します。
CR + LF U000D (CARRIAGE RETURN) + U000A (LINE FEED) LF U000A (LINE FEED) CR U000D (CARRIAGE RETURN)
下記の文字種はいずれも空白(ホワイトスペース)として認識されます。
SPACE U0020 (SPACE) TAB U0009 (CHARACTER TABULATION) FORM FEED U000C (FORM FEED) 物理行末
Specriptでは、C++/Java同様の2種類のコメント記述ができます。
/*
"〜"*/
"の間がコメントとなります。
途中物理行末が含まれていても構いません。
//
"で始まって物理行末までがコメントとして認識されます。
Specriptにおける予約語を下記に列挙します。これらは識別子として使用することが できません。
alias binary boolean constraint date decimal extern false
featured function in integer intern is list map namespace not null
private property public range real record spec SPEC string system this
timestamp true using
識別子は、
として使用されます。
識別子には、C言語同様のルールで英数字とアンダースコアが使用できます。加えて日本語文字等を
使用することができます。また、"−
"や"/
"などの全角記号類、
"1
"、"2
"などの全角数字類も識別子に使用することができます。
−
"などの
全角記号類は使用できません。Specriptでは"−
"など全角記号類も識別子に
使用することがきます。
詳細には下記文字種を下記ルールで使用することができます。
A
"〜"Z
")a
"〜"z
")_
")
A
"〜"Z
")a
"〜"z
")_
")0
"〜"9
")なお、識別子の英大文字小文字は区別されます。文字数の制限はありません。
Specriptでは、全てのタイプに対応したリテラル表現がサポートされます。 dateやtimestampに対応したリテラル表現も可能です。
リテラルは、式中で式の最小構成単位を成すものとして使用されます。
10進数値列、または"0x
"で始まる16進数値列です。"-
"または
"+
"の符号を付与できます。整数‘零’(‘0’)を表すときおよび16進数表現以外で、
先頭に"0
"があってはいけません。ただし、8進数表現はサポートしません。
16進数表現に用いるアルファベットは大文字でも小文字でも構いません。
0 1 234923049460545976657257647544523492 -45698740907 +60823 0xa87e -0x003ac5 +0x19de8234ccf498a
小数点を含む10進数値列です。必ず小数点".
"を記述します。小数点を
含まない場合integerリテラルであると認識されます。
先頭に"0
"があって構いません。小数点を含む16進数値列はサポートしません。
0.0 000.000 1.00 345.3500 00045.92300 -547845798349582.34393483490006 +4523555.35039
realのリテラル表現は、常に"e
"を使用した指数形式で記述します。
"3.14159265
"のように指数表現を用いなかった場合はdecimalリテラルで
あると認識されます。"e
"は大文字でも小文字でも構いません。16進数表現は
サポートしません。
3.3678e3 435.3453e-4 -0.7965e+34 +3.35e-65
真値を表す"true
"と偽値を表す"false
"の二つがあります。
true false
ダブルクォーテーションで括って任意の文字列が記述できます。ほぼJava同様の
"\
"に続けたエスケープがサポートされます。
"" "\"" "This program is written in Specript Language." "僕のホームは秋葉原です。" "これは1行目\nこれは2行目\n"
シングルクォーテーションで括って日付値または日時値を表現できます。シングルクォーテーションで 括った文字列は常にdateまたはtimestampのリテラルを表現していると認識されます。 シングルクォーテーションで括った文字列がdateまたはtimestampリテラルとして認識できない 場合、コンパイル時エラーとなります。ダブルクォーテーションで括った文字列は、 それがdateまたはtimestampのリテラル表現と同一でも、stringリテラルであると 認識されます。
dateリテラルの書式は'YYYY-MM-DD'
、timestampリテラルの書式は
'YYYY-MM-DD HH:MM:SS'
または'YYYY-MM-DD HH:MM:SS.sss'
の
何れかとなります。日付または日時として存在しない値の場合はコンパイル時エラーと
なります。
'2096-04-23' '1903-12-31'
'2008-02-02 01:05:08' '2096-04-23 03:55:23.040' '9999-12-31 23:59:59.999'
NULL値を表すリテラル表現をサポートします。
null
Specriptのタイプに参照タイプはありません。Specriptにおけるnull
は
「値が無い」、「値が未設定である」、「値が未決定である」ことを表します。
Specriptは下記41種の記号類をセパレータまたはオペレータとして認識します。
:: ( ) { } [ ] : = .. => , # ## ; |
. + - ! * / % < > <= >= == != =~ && || ? ==? !=? =~? <? >? <=? >=? <<
(c)2007-2008, Specript Development Team | Last Updated: 2008-03-06 |