グローバルの記述(Ver9.35対応版)
目次−
JavaScript対応−
グローバルの記述
通常はHidemaruGlobalのメソッドがグローバルに展開されていて、ほとんどのマクロの文、マクロのキーワード、マクロの関数を、だいたいそのままで表記できるようになっています。(一部例外はあります)
文でもキーワードでも関数でも、
全て関数の書き方(メソッドの書き方)になります。
詳細
例 |
js{
message( "Hello jsmode global" );
insert( filename2() );
moveto( 10, 20 );
message( question( "y/n?" ) );
}
|
- 衝突を避ける書き方
-
hidemaruGlobalオブジェクトには、グローバルに展開されるものと同じ関数があります。
グローバルに関数が展開されていると、誤って上書きしてしまう可能性がありますが、衝突を避けるためにhidemaruGlobalオブジェクトを使うことができます。
例 |
js{
moveto( x()+1, y() );
}
js{
moveto=123;
moveto( x()+1, y() );
}
js{
moveto=123;
hidemaruGlobal.moveto( x()+1, y() );
}
jsmode 0;
js{
x=123;
y=456;
moveto="abc";
}
|
変数名に使われやすいx, y, column, lineno, str, filename, resultだけは、書き換えようとするとエラーとなるようにしてあります。
他のものも将来エラーとなるかもしれないので、グローバル展開されているものはできるだけ上書きしないようにしてください。
- 他に展開されているメソッド
-
HidemaruオブジェクトのsetVar, getVarなどもグローバルに展開されていて、省略してそのまま使えます。
evalは紛らわしい書き方を避けるため、evalMacroの展開と、evalJsがグローバルに作られます。
例 |
js{
setVar("$a","abc");
a=getVar("$a");
evalMacro('message "a";');
evalJs('var a=123;');
}
|