プチコン3号&BIGまとめWiki

投稿プログラム : 実行時マクロライブラリ "M@CRO"

パンくずリスト

2018年2月15日投稿 / 投稿者 : とすけ / タグ : 投稿プログラム ライブラリ

概要

プチコンにマクロを追加するライブラリです。

マクロを使うことで、プチコンのソースコードを簡単に書きかえることができるようになります。 しかも書きかえは実行時に行われるので、一定の規則を守っていれば普通にプチコンのプログラムを書いている感覚でマクロを使ったプログラムを書くことができます。

公開キー

プチコン3号用の公開キーです。トップメニューの「作品公開とダウンロード」から公開キーを入力すると、作品をダウンロードすることができます。

プチコン3号/BIG 公開キー
AK5XEK4E

使い方

準備

ファイル:MACROを開き、START LIBRARYと書かれた行以下をあなたのプログラムリストの下に貼り付けてください。

初期化

マクロを使う前に、ライブラリの初期化をする必要があります。 このように初期化します。

  1. MCR_INIT @MCR_DEF ’使用するマクロが定義されたDATA文へのラベル
  2. GOSUB @MCR_ENTRY
  3. @MCR_DEF
  4. DATA ”(使用するマクロの名前)”,……,””

マクロの表記

式として使う場合(式マクロ)

@(名前)[引数,……]の形で表記します。引数がない場合は大括弧を省略します。

文として使う場合(文マクロ)

?@(名前)[引数,……]の形で表記します。表記以外は式マクロの場合と同様です。

制約

実行前にプログラムは必ず保存されている必要があります。

マクロを自作する

マクロはマクロと同名のパラメータを文字列配列として受け取り文字列を返す関数として定義されます。 パラメータから値を取り出すためにMCR_GETTYPEMCR_GETVALUEなどの関数があります。

ファイル:MACROの先頭に例が書かれているので、それを読んでください。

リファレンス

関数・命令

MCR_INIT LABEL$

ライブラリを初期化します。 LABEL$に渡されたラベル文字列の先にあるDATA文を参照し、そこに書かれた文字列をマクロとして登録します。

MCR_SLOT()

現在のスロットの番号を取得します。

MCR_GETTYPE(VALUE$)

VALUE$の値の種類を判定します。

種類
0整数
1実数
2文字列
3変数
4その他の式
MCR_GETVALUE(VALUE$)

VALUE$から値を取り出します。(取り出せないこともあります。その場合は値がそのまま返ります。)

マクロ

最初からマクロの適用処理を制御するためのマクロが組み込まれています。 上手に使うことで処理の無駄を省き、高速化に繋げることができます。

?@MCR_END

マクロの適用処理を終了します。 これより下のマクロは適用されません。

?@MCR_SKIP[LINE%]

マクロの適用処理をLINE%行飛ばします。 飛ばされた行のマクロは適用されません。

UTILのリファレンス

ファイル:UTILSには便利なマクロのサンプルが入っています。

FOREACH系

?@FOREACH_INIT[NUM%=1]

FOREACHを初期化します。NUM%回ネストできるので、必要な数だけ渡してください。(省略した場合は1が入ります。)

?@FOREACH[ITEM,LIST,N%=0]

LISTの要素を列挙し、1ループごとにITEMに入れます。(様々な言語にあるforeachなどの構文と似た機能を提供します。) ?@FOREACHがネストする場合、N%に親の?@FOREACHのものより1大きな値を渡します。(省略した場合は0が入ります。)

?@FOREACH_NEXT

?@FOREACHに対応するNEXTです。

式操作系

@EXPR[EXPR,……]

EXPRを評価し、,で繋げます。

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 名無しさん : Public Key does not work (2018/02/17 (土) 07:59:35)
  • Ryou Tanpo : 公開キー AK5XEK4A が有効ではないようです。Twitter では 43H34ERD となっています。 (2018/02/17 (土) 08:46:45)
  • とすけ : AK5XEK4Eでした。申し訳ない…… (2018/02/17 (土) 14:00:47)
  • とすけ : AK5XEK4Eでした。申し訳ない…… (2018/02/17 (土) 14:16:15)
  • 名無しさん : Thank you for the updated key. I will check it out and see if I learn more from this example. (2018/02/17 (土) 14:42:15)
  • Ryou Tanpo : 公開キーの修正ありがとうございます。 (2018/02/17 (土) 19:33:06)

メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 1 人がこのサイトを見ています
  • このページはこれまでに 1656 回、本日は 1 回、昨日は 0 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.118 秒 | このページの最終更新 : 2022/09/20 (火) 12:49:40 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30