āĻ¸ā§āĻŽāĻŦāĻžāĻ°, 20 āĻā§āĻ˛āĻžāĻ, re2c, āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻāĻāĻŋāĻ§āĻžāĻ¨āĻŋāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°, āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻ
āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž:
-
āĻā§ āĻāĻžāĻˇāĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
(re2c-āĻāĻ° āĻāĻ¨ā§āĻ¯ --lang go āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻž āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ re2go āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§)āĨ¤
C āĻāĻŦāĻ Go āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻāĻ āĻā§āĻā§āĻ¸āĻ āĻĨā§āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻ¨ā§āĻ¨
āĻā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤ re2c-āĻ āĻā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž
āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻˇāĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ -
CMake āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ ligfx!)āĨ¤
re2c āĻā§ CMake-āĻ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻ āĻ¨ā§āĻāĻĻāĻŋāĻ¨ āĻ§āĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ ligfx āĻāĻ° āĻāĻā§ āĻā§āĻ āĻšāĻ¯āĻŧāĻ¨āĻŋ
āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ.
āĻ āĻā§āĻā§āĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻ°āĻ¯āĻŧā§āĻā§,
āĻāĻŦāĻ āĻ āĻĻā§āĻ° āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻ¤ā§āĻ¯āĻžāĻ āĻāĻ°āĻžāĻ° āĻā§āĻ¨ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻ¨ā§āĻ (āĻāĻāĻļāĻŋāĻāĻāĻžāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ
āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž, āĻāĻāĻļāĻŋāĻ āĻāĻžāĻ°āĻŖ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
āĻ¨āĻ¤ā§āĻ¨ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻāĻ°āĻ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻāĻŦāĻ āĻāĻ°āĻ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤)āĨ¤
āĻāĻāĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ Travis CI āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ. -
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻā§āĻĄ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻā§āĻ¨ā§āĻ°āĻŋāĻ APIāĨ¤ āĻĒā§āĻ°ā§āĻŦā§, āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ API-āĻā§ āĻĢāĻ°ā§āĻŽā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻ¤ā§
āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻž āĻĢāĻžāĻāĻļāĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§āĨ¤ āĻāĻāĻ¨ āĻ¤āĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻāĻāĻžāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
@@{name} āĻŦāĻž āĻļā§āĻ§ā§ @@ (āĻ¯āĻĻāĻŋ
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻāĻā§ āĻāĻŦāĻ āĻā§āĻ¨ āĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻž āĻ¨ā§āĻ)āĨ¤ API āĻļā§āĻ˛ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
re2c:api:style (āĻĢāĻžāĻāĻļāĻ¨ āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻļā§āĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§, āĻāĻŦāĻ āĻŽā§āĻā§āĻ¤-āĻĢāĻ°ā§āĻŽ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻļā§āĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§)āĨ¤ -
-c, --start-conditions āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
āĻāĻāĻāĻŋ re2c āĻŦā§āĻ˛āĻā§ āĻāĻ¨ā§āĻ¤āĻāĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ˛ā§āĻā§āĻ¸āĻžāĻ°āĨ¤ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦā§āĻ˛āĻ āĻāĻŦāĻ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻšā§āĻ¨ āĻļāĻ°ā§āĻ¤āĻ¯ā§āĻā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻŦā§āĻ˛āĻāĨ¤
-r, --reuse āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¨āĻ¤ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ (āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻ āĻĨā§āĻā§ āĻā§āĻĄā§āĻ° āĻĒā§āĻ¨āĻāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦā§āĻ˛āĻā§) -c, --start-conditions āĻāĻŦāĻ -f, --storable-state āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°ā§
(āĻāĻāĻāĻŋ āĻ°āĻžāĻˇā§āĻā§āĻ°ā§āĻ¯āĻŧ āĻ˛ā§āĻā§āĻ¸āĻžāĻ° āĻ¯āĻž āĻ¯ā§āĻā§āĻ¨ā§ āĻ¸āĻŽāĻ¯āĻŧā§ āĻŦāĻžāĻ§āĻžāĻā§āĻ°āĻ¸ā§āĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻŦāĻ āĻĒāĻ°ā§ āĻŽā§āĻ¤ā§āĻ¯ā§āĻĻāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨)āĨ¤ -
āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻ¨ā§āĻĄ-āĻ āĻĢ-āĻāĻ¨āĻĒā§āĻ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
(EOF āĻ¨āĻŋāĻ¯āĻŧāĻŽ), āĻ¯āĻž āĻŦāĻŋāĻ°āĻ˛ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻā§āĻ˛ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°ā§
āĻāĻāĻžāĻ°āĻ˛ā§āĻ¯āĻžāĻĒāĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĨ¤ -
āĻŦā§āĻāĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻĒ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻšāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§. āĻĒā§āĻ°ā§āĻŦā§, āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻāĻŋāĻ˛
āĻāĻāĻāĻŋ re2c āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¯āĻž āĻ¨āĻŋāĻā§āĻā§ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻ° āĻĢāĻ˛ā§ āĻā§āĻ˛ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻā§āĻ°āĻžāĻĢ āĻāĻŋāĻ˛
āĻāĻ¤āĻŋāĻļā§āĻ˛, āĻ¯āĻž āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°ā§ āĻ¨āĻž)āĨ¤
āĻāĻāĻ¨, āĻ˛ā§āĻā§āĻ¸āĻžāĻ° āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ RE2C_FOR_BUILD āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§ āĻ¸āĻŦāĻžāĻāĻā§ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ!
āĻāĻ¤ā§āĻ¸: linux.org.ru