Как загрузить собственный язык в Python Tree-Sitter версии 0.23.0Python

Программы на Python
Ответить
Anonymous
 Как загрузить собственный язык в Python Tree-Sitter версии 0.23.0

Сообщение Anonymous »

Python Tree-Sitter версии 0.21.3 или более ранней
from tree_sitter import Language, Parser

lang_path = "tree-sitter-test-lang/test-lang.so"

# Load the language
TESTLANG_LANGUAGE = Language(lang_path, 'testlang')

# Initialize the parser with the languages
parser = Parser()
parser.set_language(TESTLANG_LANGUAGE)

# Parse some code
source_code = b"""
let x = 10;
print x;
"""

tree = parser.parse(source_code)

# Explore the tree
root_node = tree.root_node

def print_node(node, indent=""):
print(f"{indent}{node.type}: {node.text.decode('utf-8')}")
for child in node.children:
print_node(child, indent + " ")

print_node(root_node)

Python Tree-Sitter версии 0.23.0
В последней версии Python определения Язык и Парсер изменены. Язык ожидает один аргумент типа Tree-sitter.language, и Parser инициализируется непосредственно с выходными данными Parser. Build_libary, set_language удалены, а set_language
import tree_sitter_python as tspython
from tree_sitter import Language, Parser

PY_LANGUAGE = Language(tspython.language())

parser = Parser(PY_LANGUAGE)
tree = parser.parse(
bytes(
"""
def foo():
if bar:
baz()
""",
"utf8"
)
)

Суть моих вопросов заключается в том, как использовать Tree-sitter версии 0.23.0 для загрузки и анализа с помощью специально созданного синтаксического анализатора, такого как tree-sitter-test-lang/test-lang.soshared-object
lang_path = "tree-sitter-simple-lang/simple-lang.so"
# Load the language grammar

# Load the compiled language from the shared object file
my_language = ctypes.cdll.LoadLibrary(lang_path)
...


Подробнее здесь: https://stackoverflow.com/questions/789 ... ion-0-23-0
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»