Ужас.

Jun 26, 2013 18:39

Верилог:
assign q= x?b:z; // ошибка "syntax error next to b..."
assign q= x ? b : z; // нет ошибки.Это вот что надо было есть, чтобы такое придумать?

языки описания аппаратуры, verilog

Leave a comment

Comments 5

besm6 June 26 2013, 15:13:11 UTC
Ну как, есть же в лиспах идентификаторы вида 'similar-to-something-else?' Ну, лиспы ладно, там нет инфиксной записи. В ruby она есть, но названия методов там могут (и по традиции регулярно так делают) заканчиваться на ? и !. Такой способ разбиения на лексемы, чо.

А уж хаскель с нашей любимой невозможностью записать константу -1 без скобок...

Reply

thesz June 26 2013, 15:46:51 UTC
Верилог сделан по синтаксису Си.

Так что здесь такие извинения не пройдут.

Reply

ext_1416998 June 28 2013, 13:28:22 UTC
Это ошибка компилятора, а не верилог.

Reply


janatem June 26 2013, 16:22:34 UTC
Видимо, лексер там на коленках сделанный. У Фортрана, например, много лексических причуд (для совместимости с перфокартами, хех). Хотя, мне кажется, в 80-е (когда верилог создавался) уже были универсальные инструменты для создания лексеров и парсеров.

Reply

thesz June 26 2013, 18:36:47 UTC
О, а ещё некоторые выражение в правой части не могут быть выражениями в общем смысле этого слова.

assign q = {x,z}; // работает.
assign g = {h,i} + k; // не работает.

Reply


Leave a comment

Up