SYDEKICK/F ver. 0.0.0.3

This is an imaginary example of SYDEKICK [BASIC BASIC] in formal language. And yet, writing and consideration.

SYDEKICK/F is lexicalized by words. Each word is separated by spaces. This means if there is not any spaces between surface string, it makes one word.

Formal language which is used by SYDEKICK/F will be defined “SYDEKICK/L SYNTAX” and “SYDEKICK/L SEMANTICS” .

ver. 0.0.0.3 have different way from 0.0.0.2. We think we can write more declarative.

###### SYDEKICK/F
# SYDEKICK/F v. 0.0.0.3 作業中

"1. kN-SYDEKICK-0-1-0 BASIC BASIC" : module/dummy [
    nop

    ###[
 “System Development Kit with module Complex for ttrpg by
Kuzu/null” (“SYDEKICK”) とは、TTRPG用の簡略かつモジュール化された
System Development Kit です。ユーザ — GMとプレイヤー — が様々な世界
観とシステムを作り、そしてそれを遊ぶことの手助けとなるように構築してい
ます。
 このモジュールはBASICグループに属する “kN-SYDEKICK-0-1-0 BASIC 
BASIC” モジュールであり、いくつかのスロット の設置位置の例示と、それ
ぞれのスロット に対応するフィラー の内容の例示を行ないます。同時に、部
分と全体の module Complex の例示でもあります。以下には、 “2. キャラク
ター・メイキング”、 “3. 判定方法”、 “4. 運プール”、 “5. 行動の順
番と移動可能距離”、 “6. ダメージと消耗”、 “7. PCの成長” を含みま
す。
    ###]
]

# Example of FRAME module
# { a b c } is multiple-name-structure. { a b c } equal to { b a c } and others.
# "contain means this module has submodules.
FRAME : module [
    this contain [
        { "2. キャラクター・メイキング" "2. Character Making" } 
        { "3. 判定方法" "3. Challenges" } 
        { "4. 運プール" "4. Luck Pool" } 
        { "5. 行動の順番と移動可能距離" "5. Initiative, Movement, and Support Action" } 
        { "6. ダメージと消耗" "6. Damage/Exhaustion" } 
        { "7. PCの成長 "7. Advancement" } 
    ]
]


{ "2. キャラクター・メイキング" "2. Character Making" } : module/dummy [
    transparent

    this contain [
        { "2.1 キャラクターをイメージする" "2.1 Imaging Your Character" }
        "2.2 能力"
        # omit others
    ]
]

#   module means type of this structure is a module.
#   :- is passing result of right side of ":-"  to left side.
#   It means right side of ":-" must evaluate before passing.
#   And result of right side of ":-" can be #false.
#   In such case, left side may not evaluate.
{ "2.1 キャラクターをイメージする" "2.1 Imaging Your Character" } : module [

    { "キャラクターのイメージ" "Concepts of character"} : text :- [
        writedown/byUSER name this
    ]

    { "キャラクターのイメージ Itemize" 
      "Concepts of Character Itemize" } : text :- [
            itemize/byUSER :-  [
                read { "キャラクターのイメージ" "Concepts of character" }
            ]
        ]

    # omit rest of here
] contain [
    "2.2 能力" 
    "2.3 技能" 
    # omit rest of here
]
# contain can be use like this too.


#   Example other module
"2.2 能力" : module [

    method1 : function [
    ]

    method2 : function [
    ]

    method3 : function [
    ]


    能力 : struct [
        # You can access this as 能力/心 or "能力/心.
        # "integer" is a name of type.
        # [[ is range in math. It equal to [.
        # ]] is ] in math. (( is ( in math. )) is ) in math. 
        [ 心 : integer [[ 5 9 ]] ]
        [ 体 : integer [[ 5 9 ]] ]
        [ 技 : integer [[ 5 9 ]] ]
        [ 魂 : integer [[ 5 9 ]] ]
    ]

#   How to treat Attributes Points?

    

    能力/心 : set/byUSER
    cond [
        [ [ ( 能力/心 < 5 ) ] [ alart "ERROR" ] ]
        [ [ ( 能力/心 > 9 ) ] [ alart "ERROR" ] ]
    ]

    能力/体 : set/byUSER
    # maybe ... it can be write like this.
    cond [
        [ [ alart "ERROR" ] :- [ ( 能力/体 < 5 ) ] ]
        [ [ alart "ERROR" ] :- [ ( 能力/体 > 9 ) ] ]
    ]

    能力/技 : set/byUSER
    cond [
        [ [ ( 能力/技 < 5 ) ] [ alart "ERROR" ] ]
        [ [ ( 能力/技 > 9 ) ] [ alart "ERROR" ] ]
    ]

    能力/魂 : set/byUSER
    cond [
        [ [ ( 能力/魂 < 5 ) ] [ alart "ERROR" ] ]
        [ [ ( 能力/魂 > 9 ) ] [ alart "ERROR" ] ]
    ]

    interface 能力

    connect 能力

]

[omit others]

We will make more development of SYDEKICK/F. SYDEKICK/L SYNTAX and SYDEKICK/L SEMANTICS will come later. Enjoy and Comment!

Previous note is here.

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?