Существует ли библиотека синтаксического анализа Python, которая может анализировать формат TOML, в котором указаны вложPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Существует ли библиотека синтаксического анализа Python, которая может анализировать формат TOML, в котором указаны влож

Сообщение Anonymous »

Я хочу проанализировать внешний (и недокументированный) формат файла в Python. Он чем-то похож на TOML, но с другими стилями текста и без кавычек. Например:

Код: Выделить всё

[Schedule_Step122]
m_nMaxCurrent=0
m_szAddIn=Relay OFF
m_szLabel=06 - End Charge
m_uLimitNum=2

[Schedule_Step122_Limit0]
Equation0_szCompareSign=>=
Equation0_szRight=F_05_Charge_Capacity
Equation0_szLeft=PV_CHAN_Charge_Capacity
m_bStepLimit=1
m_szGotoStep=End Test

[Schedule_Step122_Limit1]
Equation0_szCompareSign=>=
Equation0_szLeft=PV_CHAN_Voltage
Equation0_szRight=3
m_bStepLimit=1
m_szGotoStep=End Test
(Это формат расписания испытаний Арбина.)
Мне бы хотелось, чтобы анализируемая структура выглядела примерно так:

Код: Выделить всё

"steps": [
{
"max_current": 0,
"add_in": RELAY_OFF,
"label": "09 - End Charge",
"limits": [
{
"equations": [
{
"left": PV_CHAN_CHARGE_CAPACITY,
"compare_sign": ">=",
"right": F_05_CHARGE_CAPACITY
}
],
"step_limit": 1,
"goto_step": END_TEST
},
{
"equations": [
{
"left": PV_CHAN_VOLTAGE,
"compare_sign": ">=",
"right": 6
}
],
"step_limit": 1,
"goto_step": END_TEST
}
]
}
]
Формат внешне похож на TOML, включая некоторую вложенность, но обработка строк отличается. Я также хотел бы зафиксировать определенные значения как именованные константы.
Я также изучал определение контекстно-свободной грамматики и использование лексера/парсера, такого как ANTLR, PLY, pyparsing или Lark. Я знаком с чтением грамматик в документации, но раньше не писал и не использовал их с парсером. Однако я не знаю, как можно представить структуру вложенности (например, Schedule_Step122_Limit0, являющуюся членом Schedule_Step122) или отсутствие гарантированного порядка между связанными ключами (например, Equation0_szCompareSign, Equation0_szLeft). ` и т. д.).
Существует ли универсальный инструмент синтаксического анализа, для которого я мог бы написать определение, которое дало бы мне анализируемый/структурированный вывод? Или здесь лучше всего написать собственную логику синтаксического анализа?

Подробнее здесь: https://stackoverflow.com/questions/769 ... at-specifi
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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