-- file InterScript-grammar.mesa rewritten by PGS, 22-Jul-82 14:33 -- Last Edited by: Mitchell, February 1, 1983 11:09 am 0 => -- TYPE: ParseTable -- TABLE: InterscriptData EXPORTS: SELF -- GOAL: goal --TERMINALS: -- id integer real string boolean universal intSequence versionId -- := ← = '| % ' . $ -- + - * / -- @ ! @! -- ) ] } -- ( [ { -- --ALIASES: -- id tokenId -- real tokenReal -- integer tokenInteger -- string tokenString -- boolean tokenBoolean -- universal tokenUniversal -- intSequence tokenIntSeq -- versionId tokenVerId -- '| tokenBar -- @! tokenDefine -- / tokenDivide -- $ tokenDollar -- . tokenDot -- - tokenMinus -- * tokenMultiply -- ' tokenQuote -- + tokenPlus -- . InitialSymbol --PRODUCTIONS: -- goal ::= . unit . xx 1 => -- unit ::= versionId node -- item ::= content -- item ::= binding -- item ::= label -- itemlist ::= -- itemlist ::= itemlist' -- itemlist' ::= item -- itemlist' ::= item itemlist' -- content ::= term -- content ::= node -- term ::= primary -- term ::= primary op term -- op ::= + -- op ::= - -- op ::= * -- op ::= / -- primary ::= literal -- primary ::= invocation -- primary ::= indirection -- primary ::= application -- primary ::= selection -- primary ::= vector -- literal ::= boolean -- literal ::= integer -- literal ::= intSequence -- literal ::= real -- literal ::= string -- literal ::= universal -- name ::= id -- name ::= id . name -- invocation ::= name -- indirection ::= name % -- application ::= name [ itemlist ] -- application ::= universal [ itemlist ] -- selection ::= ( term '| itemlist '| itemlist ) -- vector ::= ( itemlist ) -- node ::= { itemlist } -- binding ::= name mode rhs -- bindinglist ::= -- bindinglist ::= bindinglist' -- bindinglist' ::= binding -- bindinglist' ::= binding bindinglist' -- mode ::= ← -- mode ::= = -- mode ::= := -- rhs ::= content -- rhs ::= op term -- rhs ::= ' itemlist ' -- rhs ::= [ itemlist '| bindinglist ] -- label ::= tag -- label ::= link -- tag ::= universal $ -- link ::= id @! -- link ::= name @ -- link ::= name !