Сообщение Re: [Nitra] Rust raw string literals от 10.02.2016 9:53
Изменено 10.02.2016 12:31 VladD2
Здравствуйте, pekabon, Вы писали:
P>А подскажите, плз, как написать правило для парсинга subj?
P>https://doc.rust-lang.org/reference.html#raw-string-literals
Чтобы решить проблему в корне (а за одно и кучу других, например, парсинг отступных грамматик) нужно реализовывать параметризованные правила и сематические предикаты. Это не быстрая песня и по уму ею нужно заниматься WolfHound-у.
Но для практического применения будет достаточно описать 5-10 правил парсящих литералы с заданной длинной последовательностей '#':
P>А подскажите, плз, как написать правило для парсинга subj?
P>https://doc.rust-lang.org/reference.html#raw-string-literals
Чтобы решить проблему в корне (а за одно и кучу других, например, парсинг отступных грамматик) нужно реализовывать параметризованные правила и сематические предикаты. Это не быстрая песня и по уму ею нужно заниматься WolfHound-у.
Но для практического применения будет достаточно описать 5-10 правил парсящих литералы с заданной длинной последовательностей '#':
syntax RawStringLiteral1 = Open (!Close Any)* Close
{
regex Sharps = "#";
regex Open = "r" Sharps '\"';
regex Close = '\"' Sharps;
}
syntax RawStringLiteral1 = Open (!Close Any)* Close
{
regex Sharps = "##";
regex Open = "r" Sharps '\"';
regex Close = '\"' Sharps;
}
syntax RawStringLiteral1 = Open (!Close Any)* Close
{
regex Sharps = "###";
regex Open = "r" Sharps '\"';
regex Close = '\"' Sharps;
}
// ... размножаем нужное количество раз
Re: [Nitra] Rust raw string literals
Здравствуйте, pekabon, Вы писали:
P>А подскажите, плз, как написать правило для парсинга subj?
P>https://doc.rust-lang.org/reference.html#raw-string-literals
Чтобы решить проблему в корне (а за одно и кучу других, например, парсинг отступных грамматик) нужно реализовывать параметризованные правила и сематические предикаты. Это не быстрая песня и по уму ею нужно заниматься WolfHound-у.
Но для практического применения будет достаточно описать 5-10 правил парсящих литералы с заданной длинной последовательностей '#':
P>А подскажите, плз, как написать правило для парсинга subj?
P>https://doc.rust-lang.org/reference.html#raw-string-literals
Чтобы решить проблему в корне (а за одно и кучу других, например, парсинг отступных грамматик) нужно реализовывать параметризованные правила и сематические предикаты. Это не быстрая песня и по уму ею нужно заниматься WolfHound-у.
Но для практического применения будет достаточно описать 5-10 правил парсящих литералы с заданной длинной последовательностей '#':
syntax RawStringLiteral1 = Open (!Close Any)* Close
{
regex Sharps = "#";
regex Open = "r" Sharps '\"';
regex Close = '\"' Sharps;
}
syntax RawStringLiteral2 = Open (!Close Any)* Close
{
regex Sharps = "##";
regex Open = "r" Sharps '\"';
regex Close = '\"' Sharps;
}
syntax RawStringLiteral3 = Open (!Close Any)* Close
{
regex Sharps = "###";
regex Open = "r" Sharps '\"';
regex Close = '\"' Sharps;
}
// ... размножаем нужное количество раз