CodianCoco/R
Coco/R ¿¡¼ »ý¼ºµÈ ½ºÄɳʿ¡¼´Â ÅäÅ«¸íÀ» Token.kind ¼Ó¼ºÀ» ÅëÇØ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. Token.kindÀÇ °ªÀº ÅäÅ« À̸§ÀÇ ³»ºÎ À妽º·Î ÁöÁ¤µÇ¸ç °³º° ÅäÅ«¿¡ °¢°¢ ºÎ¿©µÇ±â ¶§¹®¿¡ ½ÇÁúÀûÀÎ ÅäÅ«µéÀÇ Á¾·ù(Delemeter, Identifier, Keyword µî)¸¦ ±¸ºÐÇϴµ¥ »ç¿ëÇÏ±â ¾î·Æ´Ù.
CodianCoco/RÀº Coco/R ¿¡¼ »ç¿ëÇÏ´Â ÄÄÆÄÀÏ·¯ ±â¼ú Çü½Ä(ATG ÆÄÀÏ Çü½Ä)ÀÇ ÅäÅ«Á¤ÀÇ¿¡ ÅäÅ«ÀÇ Á¾·ù(ÅäÅ« Ŭ·¡½º¶ó°í ĪÇÔ)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï È®ÀåÇϰí ÀÌ È®ÀåµÈ ÄÄÆÄÀÏ·¯ ±â¼ú Çü½ÄÀ» ó¸®ÇÏ´Â ÄÄÆÄÀÏ·¯ »ý¼º±â(CodianCoco/R)ÀÌ´Ù.
Coco/RÀÇ ÄÄÆÄÀÏ·¯ ±â¼ú Çü½ÄÀÇ TOKENS ¿Í PRAGMAS »ö¼Ç¿¡¼ »ç¿ëµÇ´Â ÅäÅ« Á¤ÀÇ Çü½ÄÀ» ¼öÁ¤ÇÏ¿´´Ù. ¿ø·¡ Coco/R¿¡¼ »ç¿ëµÇ´Â ÅäÅ« Á¤ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
TokenDecl = Sym SYNC ( '=' TokenExpr '.' | ) [ SemText ]
CodianCoco/R ¿¡¼´Â ´ÙÀ½°ú °°Àº ÅäÅ« Á¤ÀÇ Çü½ÄÀ» ¼öÁ¤Çß´Ù.
TokenDecl = Sym "[" ident "]" SYNC ( '=' TokenExpr '.' | ) [ SemText ]
¼öÁ¤µÈ ÅäÅ« Á¤ÀÇ Çü½ÄÀ» ÅëÇØ ´ÙÀ½°ú °°ÀÌ ÅäÅ«À» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.
ppDefine[Preprocessor] = "#" {ws} "define" {notNewLine} newLine.
void[Keyword] = "void".
ÅäÅ«¸í µÚ¿¡ µû¶ó¿À´Â [<identifier>] ´Â ÅäÅ« Ŭ·¡½º¸¦ ÁöÁ¤Çϴµ¥ »ç¿ëµÈ´Ù. CodianCoco/RÀ» ÅëÇØ »ý¼ºµÈ ½ºÄɳÊÀÇ Token Ŭ·¡½º¿¡´Â tokenClass¶ó´Â ¼Ó¼ºÀÌ Ãß°¡µÇ¾î ÅäÅ« Á¤ÀÇ¿¡ »ç¿ëµÈ ÅäÅ« Ŭ·¡½º À̸§À» Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù.
CodianCoco/RÀº GPL ¶óÀ̼¾½º¸¦ µû¸£¸ç ¼Ò½º´Â ´ÙÀ½ ¸µÅ©¸¦ ÅëÇØ ´Ù¿î·ÎµåÇÒ ¼ö ÀÖ´Ù.
