{
  "name": "hpl",
  "displayName": "BPL (Hanzi)",
  "scopeName": "source.hpl",
  "fileTypes": [
    "hpl"
  ],
  "patterns": [
    {
      "begin": "[注]",
      "beginCaptures": {
        "0": {
          "name": "comment.line.bpl"
        }
      },
      "end": "$",
      "contentName": "comment.line.bpl",
      "patterns": [],
      "applyEndPatternLast": true
    },
    {
      "match": "(?:_\\d+|_\\S|_|[^\\s\\p{Cc}0-9←是⎕出入•系⍺甲⍵乙⍶丙⍹丁∇递遞⍢循⍝注⋄句\\?若¯负負∞永⍬空\\+加\\-减減×乘号號÷除⌈上⌊下\\|绝余絕餘\\*幂冪⍟对對○圆圓π周√根!阶拣階揀∧极且極∨析或⊼方否⊽双莫雙\\~非无無=等≠别初別<小≤限退>大≥达进達進⍳位↦至:键卸鍵⍴形≢数异數異≡同深,连連⍪接矩⊂包⊃选合選⊆巢段∊属展屬∪并独併獨∩交重⍋升⍒降↑取↓去拆⌽转轉⊖纵縱⍉翻⊤编編⊥译譯⍎行⍕文⌷索⌹解逆\\#复複↕窗⍭素⨸因⌻零值⍸处间處間⍷寻群尋⊢右⊣左¿掷抽擲¨遍ᵇ按⍨己换換↣先⍤秩∘承⍠轴軸⍥经經↢后後\\.内內⊗表⌸组組⍣次止⇄优優⊘兼@于於∂导梯導⍚择擇⌺邻鄰/总總⌿汇匯\\\\累⍀续續⁰¹²³⁴⁵⁶⁷⁸⁹⁻ᵀᵘₓ₀₁₂₃₄₅₆₇₈₉₋ₓ₁ₓ₂ₓ₄ₓ₈ₓₕₛₚ\\(\\)\\[\\]\\{\\}'\";\\$_ₑⱼᵣ])+",
      "name": "variable.other.bpl"
    },
    {
      "match": "[•系][A-Za-z_∆⍙][A-Za-z0-9_∆⍙]*",
      "name": "support.function.bpl"
    },
    {
      "match": "(?:[¯负負]?[∞永]|[¯负負]?(\\d+([.内內]\\d+)?|[.内內]\\d+)([eEₑ][¯负負]?\\d+)?([jJⱼ][¯负負]?(\\d+([.内內]\\d+)?|[.内內]\\d+)([eEₑ][¯负負]?\\d+)?|[rᵣ][¯负負]?\\d+)?)(?:ₓ₁|ₓ₂|ₓ₄|ₓ₈|ₓ|ₕ|ₛ|ₚ)?|[ₑⱼᵣ]",
      "name": "constant.numeric.bpl"
    },
    {
      "match": "[⍬空](?:ₓ₁|ₓ₂|ₓ₄|ₓ₈|ₓ|ₕ|ₛ|ₚ)?",
      "name": "constant.numeric.bpl"
    },
    {
      "match": "[加减減乘号號除上下绝余絕餘幂冪对對圆圓周根阶拣階揀极且極析或方否双莫雙非无無等别初別小限退大达进達進位至键卸鍵形数异數異同深连連接矩包选合選巢段属展屬并独併獨交重升降取去拆转轉纵縱翻编編译譯行文索解逆复複窗素因零值处间處間寻群尋右左掷抽擲]",
      "name": "support.function.bpl"
    },
    {
      "match": "[遍按己换換表组組优優导梯導总總汇匯累续續]",
      "name": "keyword.operator.monadic.bpl"
    },
    {
      "match": "[先秩承轴軸经經后後内內次止兼于於择擇邻鄰]",
      "name": "keyword.operator.dyadic.bpl"
    },
    {
      "match": "[甲乙丙丁递遞循]",
      "name": "variable.parameter.bpl"
    },
    {
      "match": "[是出入句若]",
      "name": "keyword.control.bpl"
    },
    {
      "include": "source.bpl"
    }
  ]
}
