LINUX.ORG.RU

История изменений

Исправление a--, (текущая версия) :

инновационные

Не вижу ничего плохого в том, чтобы взять хорошую вещь у кого-то другого :-)

по количеству аргументов

Для меня это выглядит хрупко.

Вопросы:

1. Я могу как-то записать эти вызовы так, чтобы количество аргументов там было прописано явно? Ну то есть расставить скобки, хотя они и не нужны?

2. Как сделано взаимодействие функций и операторов? Допустим, я хочу записать как-то так:

digit: non-zero | charset "0"

3. Как сделано взаимодействие функций и списков (или массивов)? Допустим есть

ipv4: [byte dot byte dot byte dot byte]

Допустим я хочу последний байт поменять на что-то другое, non_zero_byte скажем, но позарез не хочу писать

non_zero_byte: first_but_not_second byte "0"
ipv4: [byte dot byte dot byte dot non_zero_byte]

а хочу заинлайнить, как-то так:

ipv4: [byte dot byte dot byte dot first_but_not_second(byte,"0")]

а еще лучше с оператором \ как-то так:

ipv4: [byte dot byte dot byte dot (byte \ "0")]

Как это будет выглядеть на ред?

Исходная версия a--, :

инновационные

Не вижу ничего плохого в том, чтобы взять хорошую вещь у кого-то другого :-)

по количеству аргументов

Для меня это выглядит хрупко.

Вопросы:

1. Я могу как-то записать эти вызовы так, чтобы количество аргументов там было прописано явно? Ну то есть расставить скобки, хотя они и не нужны?

2. Как сделано взаимодействие функций и операторов? Допустим, я хочу записать как-то так:

digit: non-zero | charset "0"

3. Как сделано взаимодействие функций и списков (или массивов)? Допустим есть

ipv4: [byte dot byte dot byte dot byte]

Допустим я хочу последний байт поменять на что-то другое, non_zero_byte скажем, но позарез не хочу писать

non_zero_byte: first_but_not_second byte "0"
ipv4: [byte dot byte dot byte dot non_zero_byte]

а хочу заинлайнить, как-то так:

ipv4: [byte dot byte dot byte dot first_but_not_second(byte,"0")]

а еще лучше с оператором \ вот так:

ipv4: [byte dot byte dot byte dot (byte \ "0")]

Как это будет выглядеть?