tree-sitter-arm

0

Описание

ARM grammar for Tree-sitter

Языки

  • C88,3%
  • C++6,7%
  • JavaScript3,1%
  • Rust1,4%
  • Scheme0,3%
  • Python0,2%
22 дня назад
22 дня назад
22 дня назад
22 дня назад
22 дня назад
22 дня назад
22 дня назад
22 дня назад
22 дня назад
22 дня назад
README.md

ARM/ARM64 Assembly grammar for Tree-sitter

A Tree-sitter grammar for ARM and ARM64 assembly language (GNU Assembler syntax).

Features

Supported Architectures

  • ARM32: r0-r15 registers, standard ARM instruction set
  • ARM64: x0-x30, w0-w30 registers, AArch64 instruction set
  • SIMD/FP: v0-v31, q0-q31, d0-d31, s0-s31 registers
  • Special registers: sp, lr, pc, fp, ip, xzr, wzr

Comment Styles

  • @
    - ARM line comments (highest priority)
  • #
    - Line comments (lower priority, allows
    #
    in immediate values)
  • /* */
    - C-style block comments
  • //
    - C++ style comments

Immediate Values

  • #
    prefix for immediate values (e.g.,
    #0
    ,
    #0xff
    ,
    #-40
    )
  • Supports decimal, hexadecimal (
    0x
    ), octal (
    0
    ), and binary (
    0b
    ) formats
  • High priority parsing ensures
    #
    in operands is recognized as immediate value, not comment

Memory Addressing

  • Square bracket syntax:
    [r1]
    ,
    [x1]
  • With offset:
    [sp, #80]
    ,
    [x29, #-40]
  • Apple ARM64 addressing:
    adrp x0, symbol@PAGE
    and
    add x0, x0, symbol@PAGEOFF

Directives

  • All standard GNU as directives (
    .global
    ,
    .section
    ,
    .ascii
    ,
    .asciz
    , etc.)

Installation for Helix Editor

Add to your

~/.config/helix/languages.toml
:

Then run:

Testing

Run tests with:

Examples

ARM32

ARM64

Apple ARM64

For x86/x86-64 assembly, see tree-sitter-gas.