История изменений
Исправление 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")]
Как это будет выглядеть?