[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.14402 Reply
File: 1.jpg
Jpg, 93.16 KB, 800×1119 - Click the image to expand
edit Find source with google Find source with iqdb
1.jpg
Доброкодер с образованием и кто понимает, погляди, правильно ли я описал грамматику.
Expression :: BoolTerm {OR BoolTerm}
BoolTerm :: Comparison {AND Comparison}	
Comparison :: MathExpr [CompOp MathExpr]| NOT Comparison
MathExpr :: ['+'|'-'] Term {['+'|'-'] Term}
Term :: Factor {['*'|'/'] Factor}
Factor :: Designator['(' [ExpList] ')']| NIL | <number> | <string> | '(' Expression ')'
Требуется приоритет арифметических операций над логическими, собственно: '()' > '*/' > '+-' > Сравнение > NOT > AND > OR

Не сочти за труд, с меня как обычно.
>> No.14409 Reply
>>14402
Можешь и сам проверить. Перепиши на какой-нибудь ANTLR да посмотри.

Навскидку: не заданы нетерминалы AND, OR, NIL, NOT, Designator, ExpList. И нотацию :: я первый раз вижу, видел только ::= и ->, ололо.
>> No.14410 Reply
Доброчую переписать под готовый язык, под те же EBNF и ANTLR дохрена свободного софта, генерирующего по грамматике парсеры.
>> No.14422 Reply
File: 1286430825203.jpg
Jpg, 72.94 KB, 700×700 - Click the image to expand
edit Find source with google Find source with iqdb
1286430825203.jpg
>>14409
Извиняюсь за неполноту. Все записанное в верхнем регистре и есть терминал. Designator и ExpList роли не играют, важен лишь приоритет, так что Factor может быть переписан как:
Factor :: NIL | <number> | <string> | '(' Expression ')'
Проверять и перепроверять само собой буду, просто хотелось указания понимающих людей на очевидные ошибки.
>> No.14423 Reply
>>14402
Всё правильно, няша.

бакалавр математики
>> No.14424 Reply
File: 1.png
Png, 496.94 KB, 460×650 - Click the image to expand
edit Find source with google Find source with iqdb
1.png
>>14423
Спасибо, забирай бельчонка.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]