Skip to content

Commit

Permalink
Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
massongit committed Jul 27, 2021
1 parent 02713d8 commit 460bf23
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 54 deletions.
7 changes: 5 additions & 2 deletions bin/cnako3
@@ -1,7 +1,10 @@
#!/bin/bash
ROOT_DIR=$(cd $(dirname $0); cd ..; pwd)
ROOT_DIR=$(
cd $(dirname $0)
cd ..
pwd
)
SRC_DIR=$ROOT_DIR/src
NAKO_JS=$SRC_DIR/cnako3.js

/usr/bin/env node $NAKO_JS $*

22 changes: 11 additions & 11 deletions doc/files.md
@@ -1,39 +1,39 @@
# なでしこを構成するファイルたち

### src/nako3.js
## src/nako3.js

なでしこコンパイラ本体。なでしこのソースコードをJSに変換する。変換処理は、以下のように行われる。

- なでしこソース
- 構文木(中間表現)
- JavaScriptソース
- なでしこソース
- 構文木(中間表現)
- JavaScriptソース


### src/nako_prepare.js
## src/nako_prepare.js

なでしこのソースコードの前置処理を行うもの。主に全角半角の変換処理を行う。

### src/nako_parser3.js
## src/nako_parser3.js

なでしこ構文から構文木を生成するもの。

### src/nako_gen.js
## src/nako_gen.js

構文木を元に、JavaScriptのコードを生成するもの。

### src/plugin_xxx.js
## src/plugin_xxx.js

なでしこの命令を定義したプラグイン。


### src/cnako3.js
## src/cnako3.js

バッチファイル実行用。コマンドラインのインタフェースを実装するモノ。

### src/wnako3.js
## src/wnako3.js

ブラウザ用。

### src/enako3.js
## src/enako3.js

Electronによるアプリ本体。
30 changes: 15 additions & 15 deletions doc/plugins.md
Expand Up @@ -2,8 +2,8 @@

なでしこ3には、以下の二種類のプラグインがある。

- (1) なでしこ3自身で開発したなでしこプラグイン
- (2) JavaScriptで開発したJSプラグイン
- (1) なでしこ3自身で開発したなでしこプラグイン
- (2) JavaScriptで開発したJSプラグイン

なお、(1)のプラグインはなでしこ自身で関数を定義するだけである。
以下では、(2)のJavaScriptで開発したプラグインについて解説する。
Expand All @@ -19,7 +19,7 @@ HTMLファイル内でなでしこ本体(wnako3.js)よりも後ろで<script src

プラグインの実体は、Objectである。

```
```js
{
'定数名': { 定義 },
'命令名': { 定義 },
Expand All @@ -31,7 +31,7 @@ HTMLファイル内でなでしこ本体(wnako3.js)よりも後ろで<script src

プラグインの実体は、Object。実際の関数定義は、fnプロパティに行う。実際の関数の引数に加えて、システムを表すsysを用意する。

```
```js
{
'関数名': { // @関数の説明 // @ヨミガナ
type: 'func', // 関数であれば func にする
Expand All @@ -51,15 +51,15 @@ HTMLファイル内でなでしこ本体(wnako3.js)よりも後ろで<script src

typeプロパティに「const」を指定して、valueプロパティに値を指定する。

```
```js
{ type: 'const', value: 100 } // @ヨミガナ
```

### 定義:変数

typeプロパティに「var」を指定して、valueプロパティに値を指定する。

```
```js
{ type: 'var', value: 100 } // @ヨミガナ
```

Expand All @@ -68,7 +68,7 @@ typeプロパティに「var」を指定して、valueプロパティに値を

プラグインの末尾に以下のコードを仕込むとscriptタグで読み込んだときシステムに登録できる。

```
```js
if (typeof (navigator) === 'object') {
navigator.nako3.addPluginObject(プラグイン名, オブジェクト)
}
Expand All @@ -78,7 +78,7 @@ if (typeof (navigator) === 'object') {

以下のようなエントリを用意しておくと、プラグインを取り込み、初回実行するときに初期化メソッドが実行される。(ただし、プラグイン取り込み時に、 `!{プラグイン名}:初期化` というメソッド名にリネームされる)

```
```js
{
'初期化': {
type: 'func',
Expand All @@ -93,7 +93,7 @@ if (typeof (navigator) === 'object') {

以下のようなエントリを用意しておくと、プログラム終了時(あるいはクリア時)にプラグインごとプログラムが実行される。

```
```js
{
'!クリア': {
type: 'func',
Expand All @@ -111,7 +111,7 @@ if (typeof (navigator) === 'object') {
以下は引数のない関数を定義した例だが、必ず必要とされる引数の末尾に実行したシステムのthisを保持するオブジェクトが渡される。
このオブジェクトを参照することで、システム変数にアクセスできる。

```
```js
{
type: 'func',
josi: [],
Expand All @@ -123,7 +123,7 @@ if (typeof (navigator) === 'object') {

例えば、なでしこで管理されている変数「A」にアクセスしたいときは、以下のようなコードを記述する。なお、ローカル変数を参照するときpure: trueの関数は正しく動作しない。

```
```js
{
type: 'func',
josi: [],
Expand All @@ -136,7 +136,7 @@ if (typeof (navigator) === 'object') {

そのほかに、なでしこ側で定義した関数「HOGE」を実行したいときは、以下のように記述する。

```
```js
{
type: 'func',
josi: [],
Expand All @@ -160,7 +160,7 @@ if (typeof (navigator) === 'object') {

なお、最後の助詞を可変長引数として扱う場合、システム変数は末尾の引数の末尾の要素として挿入される。

```
```js
{
type: 'func',
josi: [[''], ['']],
Expand All @@ -177,7 +177,7 @@ if (typeof (navigator) === 'object') {

v3.2.22で導入された非同期モードに対応した関数を作るには、以下のように記述する。

```
```js
fn: function (n, sys) {
if (sys.__genMode == '非同期モード') {
sys.async = true // 非同期モードを使うことを明示
Expand All @@ -191,7 +191,7 @@ v3.2.22で導入された非同期モードに対応した関数を作るには
}
```

- (参考)[秒待機](https://github.com/kujirahand/nadesiko3/blob/f3d51519aff77df04b0d9b1e29ed16914a3f0e74/src/plugin_system.js#L1808)
- (参考)[秒待機](https://github.com/kujirahand/nadesiko3/blob/f3d51519aff77df04b0d9b1e29ed16914a3f0e74/src/plugin_system.js#L1808)



Expand Down
18 changes: 9 additions & 9 deletions doc/release.md
Expand Up @@ -6,7 +6,7 @@

ただし、リリース前(コミット前)には必ずテストを実行して、テストが成功するか確認する。

```
```shell
npm test
```

Expand All @@ -16,21 +16,21 @@ npm test

まず、リリース用にwebpackでパックしたソースを生成する(/releaseに生成物が作られる)。

```
```shell
npm run build
```

対応ブラウザを更新する。

```
```shell
npm run build:browsers
```

## 3.npmにpublish

package.jsonのバージョン番号を更新したことを確認する。npm publishでnpmに公開する。

```
```shell
npm publish
```

Expand All @@ -46,32 +46,32 @@ npm publish

Windows用のリポジトリ生成のためにファイルをnadesiko3win32へコピーする。ただし、事前準備として、 `git clone` でnadesiko3win32のリポジトリを取得しておく必要がある。

```
```shell
npm run build:win32
bash ./win32.bash
```

nadesiko3win32のフォルダに移動。

```
```shell
cd ../nadesiko3win32
```

なお、Windowsで実行してモジュールの最新版を取得。

```
```shell
nodejs\npm install --production
nodejs\npm audit fix
```

次に、7zipでモジュールを固める。

```
```shell
bin\7z -mx=9 a node_modules.7z node_modules
```
最後にGitへアップする。

```
```shell
git commit -a
git push
```
Expand Down
8 changes: 4 additions & 4 deletions doc/win32.md
Expand Up @@ -16,7 +16,7 @@

nadesiko3のリポジトリで、モジュールをビルドします。そして、build:win32を実行して、win32用のファイルを整えます。

```
```shell
npm run build
npm run build:win32
```
Expand All @@ -27,7 +27,7 @@ npm run build:win32

Node.jsのアーカイブ一式をプロジェクトの`/nodejs`フォルダに配置します。そのため、Node.jsの最新版をnodejsフォルダ以下にコピーします。さらに、以下のコマンドを実行して、7zのアーカイブを作成してGitリポジトリにコミットします。

```
```shell
.\bin\7z.exe a nodejs.7z nodejs
```

Expand All @@ -39,13 +39,13 @@ Node.jsのアーカイブ一式をプロジェクトの`/nodejs`フォルダに

この時、ネットワークフォルダ上では正しくnpmが動作しないため、ユーザーフォルダに一式を配置して実行する必要があります。

```
```shell
.\nodejs\npm install --global --production windows-build-tools
```

そして、なでしこに必要なモジュールをインストールします。なお、win32版は標準モジュールに加えて、以下のモジュールを追加でインストールします。

```
```shell
# 基本
.\nodejs\npm install --production
# 追加モジュールをインストール
Expand Down
22 changes: 11 additions & 11 deletions docs/index.md
@@ -1,4 +1,4 @@
## 日本語プログラミング言語「なでしこ」
# 日本語プログラミング言語「なでしこ」

日本語プログラミング言語「なでしこ」は、日本語をベースとしたプログラミング言語です。そして、「なでしこ3」は主にブラウザで動かすことを目的に開発されています。ブログやWebサイトに組み込んで使えます。また、OSや環境を問わず、PC・スマホ・タブレットとさまざまな環境で動きます。作業の自動化をはじめ、趣味、教育、仕事などに利用できます。

Expand All @@ -8,30 +8,30 @@

なでしこのWebサイト一覧。参考にしてください。

- [「なでしこ」のWebサイト](https://nadesi.com/top/)
- [「なでしこ3貯蔵庫」 ... プログラム一覧](https://n3s.nadesi.com/)
- [なでしこ3の改善掲示板](https://nadesi.com/cgi/kaizen3/)
- [「なでしこ」のWebサイト](https://nadesi.com/top/)
- [「なでしこ3貯蔵庫」 ... プログラム一覧](https://n3s.nadesi.com/)
- [なでしこ3の改善掲示板](https://nadesi.com/cgi/kaizen3/)

## どうやって使う

Webサイトですぐに試すことができます。

- [なでしこ3簡易エディタ](https://nadesi.com/doc3/index.php?%E3%81%AA%E3%81%A7%E3%81%97%E3%81%933%E7%B0%A1%E6%98%93%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF)
- [なでしこ3簡易エディタ](https://nadesi.com/doc3/index.php?%E3%81%AA%E3%81%A7%E3%81%97%E3%81%933%E7%B0%A1%E6%98%93%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF)

## npm でインストール

Node.jsのnpmでインストールする場合、以下のコマンドを実行します。

```
$ npm install nadesiko3
```shell
npm install nadesiko3
```

## GitHubからインストール

Gitを利用してインストールする場合、以下のコマンドを実行します。

```
$ git clone https://github.com/kujirahand/nadesiko3.git
$ cd nadesiko3
$ npm install
```shell
git clone https://github.com/kujirahand/nadesiko3.git
cd nadesiko3
npm install
```
1 change: 0 additions & 1 deletion installer/chromeos.sh
Expand Up @@ -15,4 +15,3 @@ sudo npm install -g nadesiko3

# 追加
sudo apt install -y p7zip-full xdotool

3 changes: 2 additions & 1 deletion src/browsers.md
@@ -1,3 +1,4 @@
# 対応ブラウザ
* ブラウザ
* モバイル
* Chrome for Android
Expand Down Expand Up @@ -55,4 +56,4 @@
* PC (Windows/macOS/Linux)
* Node
* 12.16.0
* 10.19.0
* 10.19.0

0 comments on commit 460bf23

Please sign in to comment.