文字コード: 大川知、鈴木大郎 著「コンパイラ 言語処理系の基礎からyacc/lexまで」近代科学社(2008)のソースをMacintoshで実行(java版), error(60)

# 大川知、鈴木大郎　著　「コンパイラ　言語処理系の基礎からyacc/lexまで」近代科学社(2008)のソースをMacintoshで実行する(Java版)
## ソースコード
近代科学社のsuppportにある。学内での利用を前提としている。「学外での配布を禁止」している。
[リンク]https://www.kindaikagaku.co.jp/support/compiler_kindaikagaku.zip
## ダウンロード
解凍する。さらに、フォルダの中のtglc-java.zipも解凍し、実行してみる。

```shell-session
cd compiler_kindaikagaku
tar -xzf tglc-c++.zip
cd tglc-java
./tglc ../sample/koch.tgl
```

# 道具類
揃っておらず、コンパイルエラーなどが出たら。

## 準備1。Java導入。

```shell-session
$ brew cask install java
```

## 準備2.Jflex導入。

```shell-session
$ brew install jflex
```

## 準備3. X11のライブラリ
使用している。X11を導入。名前はxquartz。

```shell-session
$ brew cask install xquartz
```

## 画像
うまく画像が出てこない場合は、tglcファイルで指定したJFlexの名前と場所がjflex=/usr/local/jflex-1.4.2/lib/JFlex.jar ではない。例えば、2017/12/18日現在brewで導入した場合は

```shell:tglc.
#!/bin/sh
...
jflex=/usr/local/Cellar/jflex/1.6.1/libexec/jflex-1.6.1.jar
...
```

## Java 版
sampleが、C++版のsampleよりも一つ少ない。

## C++
解凍してあれば

```shell-session
$ cd sample
$ cp ../../../compiler_kindaikagaku/tglc/sample/sin2.tgl .
```
# スクリプト
すべての例を順次実行するシェルスクリプト。例えば名前をtgl.shにする。tglc-javaのフォルダに作るとすれば、下記。 

```shell:tgl.sh
./tglc ./sample/asteroid.tgl	
./tglc ./sample/epicycl.tgl	
./tglc ./sample/key.tgl		
./tglc ./sample/rect.tgl	
./tglc ./sample/sin2.tgl  #これがJava版のsampleフォルダにない。
./tglc ./sample/c.tgl		
./tglc ./sample/hilbert.tgl	
./tglc ./sample/koch.tgl	
./tglc ./sample/sin.tgl		
./tglc ./sample/spiral.tgl
```
## 実行権限

```shell-session
$ chmod +x tgl.sh
```
## 一枚画像表示。
その画像を閉じると次の処理をする。

# 文字コードエラー
文字コードエラーなどが出たら、文字コード変換のcvfilesで文字コードを指定する。src, sampleの両方のコードを一括変換してくれる。README-Javaファイルに記載あり。文字コード(utf8, sjis, jis , euc),改行コード(unix, win, mac)

```shell-session
$ cvfiles 文字コード 改行コード
```

## nkf
このスクリプトはnkfを使っている。nkfがなければ導入。nkfなしでcvfilesを実行すると、すべてのファイルを0バイトにするかも。

```shell-session
$ brew install nkf
```
# 参考文献
参考1。 brewの導入方法
[リンク]https://qiita.com/megu_ma/items/820695ac525030285682

参考2。Xcodeの導入。下記からダウンロード。
[リンク]https://developer.apple.com/jp/xcode/

言語を作る！bisonとflexを使ってみた
https://qiita.com/toru0408/items/483c77cb76198d4c6ceb

構文解析ツール『Lex&Yacc』の簡易版をアプリに埋め込む
https://qiita.com/tohmas/items/d0a2a6a7b560c9fa8ffb

goyaccを使う
https://qiita.com/draftcode/items/c9f2422fca14133c7f6a

C++でbison(パーサジェネレーター)を使う
https://qiita.com/tosyama/items/6766321025c6a2875109

goyaccで構文解析を行う
https://qiita.com/k0kubun/items/1b641dfd186fe46feb65

CGoでYacc & Bison
https://qiita.com/chobie@github/items/8bc8d1c7104f0a3ad3fe

Markdown記法の一部を理解してHTMLに変換する処理をyacc,lexで実装してみる
https://qiita.com/toshiya/items/7fa39bd9c06fc1c0a44c

FlexとBisonをVisualStudio2017で使う
https://qiita.com/alphya/items/ca668c1315e23dac6e15

## 自己参照
物理記事　上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

数学関連記事１００
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

言語・文学記事　１００
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6

医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82

通信記事１００
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

自動車　記事　１００
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

日本語（０）一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

仮説（0）一覧（目標100現在40）
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

安全（0）安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

Ethernet 記事一覧　Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48) 
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網（Wi-Fi）空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

OSEK OS設計の基礎　OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

通信記事１００
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

Ethernet 記事一覧　Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48) 
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網（Wi-Fi）空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

＜この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。＞
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
# 文書履歴
ver. 1.00 初稿 2017/12/28
ver. 1.01 shell指定 2018/03/28
ver. 1.02 ありがとう追記　20230508
## 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
####  Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.