"Name" = 'N-Address Code (NAC)' "Version" = '0.3.0 (2011/02/08)' "Author" = 'Nikolaos Kavvadias ' "About" = 'An imperative programming language with light semantics, usable as an executable/interpretable intermediate representation' ! This grammar was (partly) translated from the YACC Meta-language to the GOLD ! Meta-language by the YaccToGOLD utility program. "Case Sensitive" = False "Start Symbol" = !{Hex Digit} = {Digit} + [abcdefABCDEF] !{Oct Digit} = [01234567] {Id Head} = {Letter} + {Digit} + [_] {Id Tail} = {Id Head} + {Digit} !{String Ch} = {Printable} - ["] !{Char Ch} = {Printable} - [''] !DecLiteral = [123456789]{digit}* !OctLiteral = 0{Oct Digit}* !HexLiteral = 0x{Hex Digit}+ FloatLiteral = {Digit}*'.'{Digit}+ !StringLiteral = '"'( {String Ch} | '\'{Printable} )* '"' !CharLiteral = '' ( {Char Ch} | '\'{Printable} )'' InitializedArray = {Id Head}{Id Tail}*'['{Id Head}{Id Tail}*']''=''{'{Id Head}{Id Tail}*(','{Id Head}{Id Tail}*)*'}' UninitializedArray = ({Id Head}{Id Tail}*'['']' | {Id Head}{Id Tail}*'['{Id Head}{Id Tail}*']') !T_ID = Anum | InitializedArray | UninitializedArray | FloatLiteral T_ID = {Id Head}{Id Tail}* !Comment Start = '/*' !Comment End = '*/' Comment Line = '//' T_LPAREN = '(' T_RPAREN = ')' T_LBRACE = '{' T_RBRACE = '}' T_LBRACKET = '[' T_RBRACKET = ']' T_COMMA = ',' T_COLON = ':' T_SEMI = ';' T_ASSIGN = '<=' T_EQUAL = '=' T_PROCEDURE = procedure T_LOCALVAR = localvar T_GLOBALVAR = globalvar T_IN = in T_OUT = out ! ======================================= Rules ::= ::= | T_SEMI | T_SEMI ::= T_GLOBALVAR ::= T_LPAREN T_RPAREN T_LBRACE T_RBRACE ::= | ::= T_PROCEDURE ::= | T_SEMI | T_SEMI ::= T_LOCALVAR ::= | ::= | |