<commit_before>﻿# 秀スクリプト


# 秀スクリプトの概要

秀スクリプトは、TypeScriptに似た文法を持つスクリプト言語で、コンパイラにより秀丸マクロに変換され、秀丸上で実行されます。

秀スクリプトの拡張子は特に決まりはありませんが、hsを推奨します。

秀スクリプトの例:

```
function fact(n: number) : number {
  if (n == 0)
    return 1;
  return fact(n - 1) * n;
}

var f = fact(5);
message(str(f));
```

コンパイル結果は下記の通り（見やすくするため字下げを加えました）

```
goto _end_fact
fact:
	if ( ##1==0) {
		return 1;
	}
	call fact  ##1-1;##_0=##return;
	return ##_0*##1;
	return;
_end_fact:

call fact  5;#_1=##return;
#f=#_1;
message  str( #f);
```


# 秀スクリプトのコンパイル方式

秀スクリプトのコンパイラは、秀スクリプト自身として書かれており、秀丸マクロにコンパイルされた形で秀丸上で実行することができます。また、秀スクリプトがTypeScriptに似ていることから、秀スクリプトコンパイラはTypeScriptとしても実行できるように記述されています。この場合は、秀スクリプトはいったんJavaScriptにコンパイルされ、Node.js上で動かすことになります。

秀スクリプトコンパイラをコンパイルする foo.hs 

## (1) TypeScript+Node.jsとして実行する
- hidescript.ts をTypeScriptコンパイラによりコンパイルする。hidescript.jsが生成される
- hidescript.js をNode.js上で実行する

C:> node hidescript.js foo.hs

- foo.mac ができるので、秀丸で実行する

※ 環境変数 hidemacrodirに秀丸マクロ用フォルダ名をセットしておくと、そのフォルダにfoo.macが書き込まれます。


## (2)秀丸マクロとして実行する
- 予め、hs.mac を秀丸上でマクロ登録しておく。
- foo.hsを秀丸で開く
- ショートカットキー等によりhidescript.macを実行する
- foo.macのウィンドウが開き、コンパイル結果が挿入される
- foo.macをショートカット等で実行する



## 1. [文法](syntax.md)



![エビフライトライアングル](images/Jjwsc.jpg "サンプル")
<commit_msg>リンク切れ修正<commit_after>﻿# 秀スクリプト


# 秀スクリプトの概要

秀スクリプトは、TypeScriptに似た文法を持つスクリプト言語で、コンパイラにより秀丸マクロに変換され、秀丸上で実行されます。

秀スクリプトの拡張子は特に決まりはありませんが、hsを推奨します。

秀スクリプトの例:

```
function fact(n: number) : number {
  if (n == 0)
    return 1;
  return fact(n - 1) * n;
}

var f = fact(5);
message(str(f));
```

コンパイル結果は下記の通り（見やすくするため字下げを加えました）

```
goto _end_fact
fact:
	if ( ##1==0) {
		return 1;
	}
	call fact  ##1-1;##_0=##return;
	return ##_0*##1;
	return;
_end_fact:

call fact  5;#_1=##return;
#f=#_1;
message  str( #f);
```


# 秀スクリプトのコンパイル方式

秀スクリプトのコンパイラは、秀スクリプト自身として書かれており、秀丸マクロにコンパイルされた形で秀丸上で実行することができます。また、秀スクリプトがTypeScriptに似ていることから、秀スクリプトコンパイラはTypeScriptとしても実行できるように記述されています。この場合は、秀スクリプトはいったんJavaScriptにコンパイルされ、Node.js上で動かすことになります。

秀スクリプトコンパイラをコンパイルする foo.hs 

## (1) TypeScript+Node.jsとして実行する
- hidescript.ts をTypeScriptコンパイラによりコンパイルする。hidescript.jsが生成される
- hidescript.js をNode.js上で実行する

C:> node hidescript.js foo.hs

- foo.mac ができるので、秀丸で実行する

※ 環境変数 hidemacrodirに秀丸マクロ用フォルダ名をセットしておくと、そのフォルダにfoo.macが書き込まれます。


## (2)秀丸マクロとして実行する
- 予め、hs.mac を秀丸上でマクロ登録しておく。
- foo.hsを秀丸で開く
- ショートカットキー等によりhidescript.macを実行する
- foo.macのウィンドウが開き、コンパイル結果が挿入される
- foo.macをショートカット等で実行する



## 1. [文法](docs/syntax.md)



![エビフライトライアングル](images/Jjwsc.jpg "サンプル")

{'fraction_non_alphanumeric': 0.1327148043565954, 'fraction_numerical': 0.014521984671238403, 'mean_word_length': 5.966292134831461, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2666092', 'n_tokens_mistral': 1839, 'n_tokens_neox': 1720, 'n_words': 150}