Changeset 445
- Timestamp:
- Jun 22, 2010 7:45:44 PM (14 years ago)
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
MetaXa/src/Meta/MetaMagnolia.sdf
r398 r445 37 37 context-free syntax 38 38 39 VARID -> VarMetaVar {cons("MetaVar"), prefer, metavar}40 VARID "*" -> VarMetaListVar {cons("MetaVarList"), prefer, metavar,listvar}41 VARID "+" -> VarMetaLIstVar {cons("MetaVarList"), prefer, metavar,listvar}39 VARID -> VarMetaVar {cons("MetaVar"), prefer, category("MetaVar")} 40 VARID "*" -> VarMetaListVar {cons("MetaVarList"), prefer, category("MetaVar"),listvar} 41 VARID "+" -> VarMetaLIstVar {cons("MetaVarList"), prefer, category("MetaVar"),listvar} 42 42 43 43 VarMetaVar -> Var[[Core]] … … 46 46 47 47 48 NAMEID -> NameMetaVar {cons("MetaName"),prefer, metavar}49 NAMEID "*" -> NameMetaListVar {cons("MetaNameList"),prefer, metavar,listvar}50 NAMEID "+" -> NameMetaListVar {cons("MetaNameList"),prefer, metavar,listvar}48 NAMEID -> NameMetaVar {cons("MetaName"),prefer, category("MetaVar")} 49 NAMEID "*" -> NameMetaListVar {cons("MetaNameList"),prefer, category("MetaVar"),listvar} 50 NAMEID "+" -> NameMetaListVar {cons("MetaNameList"),prefer, category("MetaVar"),listvar} 51 51 52 52 NameMetaVar -> Identifier[[Core]] … … 57 57 NameMetaListVar -> Identifier[[Cxx]] 58 58 59 FUNID -> FunNameMetaVar {cons("MetaFun"), prefer, metavar,listvar}60 PROCID -> ProcNameMetaVar {cons("MetaProc"), prefer, metavar,listvar}59 FUNID -> FunNameMetaVar {cons("MetaFun"), prefer, category("MetaVar"),listvar} 60 PROCID -> ProcNameMetaVar {cons("MetaProc"), prefer, category("MetaVar"),listvar} 61 61 62 62 FunNameMetaVar -> FunName[[Core]] … … 66 66 FunNameMetaVar -> FunName[[Cxx]] 67 67 68 TYPEID -> TypeMetaVar {cons("MetaType"), prefer, metavar}69 TYPEID "*" -> TypeMetaListVar {cons("MetaTypeList"), prefer, metavar,listvar}70 TYPEID "+" -> TypeMetaListVar {cons("MetaTypeList"), prefer, metavar,listvar}68 TYPEID -> TypeMetaVar {cons("MetaType"), prefer, category("MetaVar")} 69 TYPEID "*" -> TypeMetaListVar {cons("MetaTypeList"), prefer, category("MetaVar"),listvar} 70 TYPEID "+" -> TypeMetaListVar {cons("MetaTypeList"), prefer, category("MetaVar"),listvar} 71 71 72 72 TypeMetaVar -> Type[[Core]] … … 77 77 TypeListPlus -> {Type ","}+ 78 78 79 EXPRID -> ExprMetaVar {cons("MetaExpr"), prefer, metavar}80 EXPRID "*" -> ExprMetaListVar {cons("MetaExprList"), prefer, metavar,listvar}81 EXPRID "+" -> ExprMetaListVar {cons("MetaExprList"), prefer, metavar,listvar}79 EXPRID -> ExprMetaVar {cons("MetaExpr"), prefer, category("MetaVar")} 80 EXPRID "*" -> ExprMetaListVar {cons("MetaExprList"), prefer, category("MetaVar"),listvar} 81 EXPRID "+" -> ExprMetaListVar {cons("MetaExprList"), prefer, category("MetaVar"),listvar} 82 82 83 83 ExprMetaVar -> Expr[[Core]] … … 88 88 ExprMetaListVar -> Expr[[Cxx]] 89 89 90 STATID -> StatMetaVar {cons("MetaStat"), prefer, metavar}91 STATID "*" -> StatMetaListVar {cons("MetaStatList"), prefer, metavar,listvar}92 STATID "+" -> StatMetaListVar {cons("MetaStatList"), prefer, metavar,listvar}90 STATID -> StatMetaVar {cons("MetaStat"), prefer, category("MetaVar")} 91 STATID "*" -> StatMetaListVar {cons("MetaStatList"), prefer, category("MetaVar"),listvar} 92 STATID "+" -> StatMetaListVar {cons("MetaStatList"), prefer, category("MetaVar"),listvar} 93 93 94 94 StatMetaVar -> Stat[[Core]] … … 99 99 StatMetaListVar -> Stat[[Cxx]] 100 100 101 DECLID -> DeclMetaVar {cons("MetaDecl"), prefer, metavar}102 DECLID "*" -> DeclMetaListVar {cons("MetaDeclList"), prefer, metavar,listvar}103 DECLID "+" -> DeclMetaListVar {cons("MetaDeclList"), prefer, metavar,listvar}101 DECLID -> DeclMetaVar {cons("MetaDecl"), prefer, category("MetaVar")} 102 DECLID "*" -> DeclMetaListVar {cons("MetaDeclList"), prefer, category("MetaVar"),listvar} 103 DECLID "+" -> DeclMetaListVar {cons("MetaDeclList"), prefer, category("MetaVar"),listvar} 104 104 105 105 DeclMetaVar -> Decl[[Core]] … … 110 110 DeclMetaListVar -> Decl[[Cxx]] 111 111 112 OPID -> ADDOP {cons("MetaOp"), prefer, metavar} 113 [\_] OPID [\_] -> ID {cons("MetaOpBinName"), prefer, metavar} 114 OPID -> NEGOP {cons("MetaOp"), prefer, metavar} 115 OPID [\_] -> ID {cons("MetaOpPreName"), prefer, metavar} 112 113 ATTRID -> AttrMetaVar {cons("AttrDecl"), prefer, category("MetaVar")} 114 ATTRID "*" -> AttrMetaListVar {cons("AttrDeclList"), prefer, category("MetaVar"),listvar} 115 ATTRID "+" -> AttrMetaListVar {cons("AttrDeclList"), prefer, category("MetaVar"),listvar} 116 117 AttrMetaVar -> SubClause[[Core]] 118 AttrMetaListVar -> SubClause[[Core]] 119 AttrMetaVar -> SubClause[[Base]] 120 AttrMetaListVar -> SubClause[[Base]] 121 122 OPID -> ADDOP {cons("MetaOp"), prefer, category("MetaVar")} 123 [\_] OPID [\_] -> ID {cons("MetaOpBinName"), prefer, category("MetaVar")} 124 OPID -> NEGOP {cons("MetaOp"), prefer, category("MetaVar")} 125 OPID [\_] -> ID {cons("MetaOpPreName"), prefer, category("MetaVar")} 116 126 117 127 "\\" METAVARID -> ID {cons("Dummy")} … … 120 130 sorts 121 131 INTID FLTID STRID VARID TYPEID EXPRID STATID DECLID NAMEID MODEID QID FUNID 122 SUBID METAVARID PROCID 132 SUBID METAVARID PROCID ATTRID 123 133 124 134 lexical syntax 125 135 126 [O][ s]*[0-9]*[\']*SUBID? -> OPID127 [R][ s]*[0-9]*[\']*SUBID? -> FLTID128 [Q][ s]*[0-9]*[\']*SUBID? -> INTID129 [C][ s]*[0-9]*[\']*SUBID? -> STRID130 [A][ s]*[0-9]*[\']*SUBID? -> EXPRID131 [D][ s]*[0-9]*[\']*SUBID? -> DECLID132 [E][ s]*[0-9]*[\']*SUBID? -> EXPRID133 [F][ s]*[0-9]*[\']*SUBID? -> FUNID134 [M][ s]*[0-9]*[\']*SUBID? -> MODEID135 [N][ s]*[0-9]*[\']*SUBID? -> NAMEID136 [P][ s]*[0-9]*[\']*SUBID? -> PROCID137 [S][ s]*[0-9]*[\']*SUBID? -> STATID138 [T][ s]*[0-9]*[\']*SUBID? -> TYPEID139 [VX][ s]*[0-9]*[\']*SUBID? -> VARID136 [O][a-z]*[s]*[0-9]*[\']*SUBID? -> OPID 137 [R][a-z]*[s]*[0-9]*[\']*SUBID? -> FLTID 138 [Q][a-z]*[s]*[0-9]*[\']*SUBID? -> INTID 139 [C][a-z]*[s]*[0-9]*[\']*SUBID? -> STRID 140 [A][t][t][r][s]*[0-9]*[\']*SUBID? -> ATTRID 141 [D][a-z]*[s]*[0-9]*[\']*SUBID? -> DECLID 142 [E][a-z]*[s]*[0-9]*[\']*SUBID? -> EXPRID 143 [F][a-z]*[s]*[0-9]*[\']*SUBID? -> FUNID 144 [M][a-z]*[s]*[0-9]*[\']*SUBID? -> MODEID 145 [N][a-z]*[s]*[0-9]*[\']*SUBID? -> NAMEID 146 [P][a-z]*[s]*[0-9]*[\']*SUBID? -> PROCID 147 [S][a-z]*[s]*[0-9]*[\']*SUBID? -> STATID 148 [T][a-z]*[s]*[0-9]*[\']*SUBID? -> TYPEID 149 [VX][a-z]*[s]*[0-9]*[\']*SUBID? -> VARID 140 150 141 151 [A-Z][s]*[0-9]*[\']*SUBID? -> METAVARID … … 151 161 OPID -/- [A-Za-z\'0-9] 152 162 EXPRID -/- [A-Za-z\_\'0-9] 163 ATTRID -/- [A-Za-z\_\'0-9] 153 164 FLTID -/- [A-Za-z\_\'0-9] 154 165 INTID -/- [A-Za-z\_\'0-9] -
MetaXa/src/Meta/MetaQuotes.sdf
r395 r445 11 11 12 12 "(;" Expr[[SQCtx]] ";)" -> SQExpr[[Ctx]] {cons("SQExpr")} 13 "(;" ConceptExpr[[SQCtx]] ";)" -> SQConceptExpr[[Ctx]] {cons("SQConceptExpr")} 13 14 "(;" Stat[[SQCtx]] ";)" -> SQStat[[Ctx]] {cons("SQStat")} 14 15 "(;" Decl[[SQCtx]] ";)" -> SQDecl[[Ctx]] {cons("SQDecl")} … … 23 24 24 25 "expr" "(;" Expr[[SQCtx]] ";)" -> SQExpr[[Ctx]] {cons("SQExpr")} 26 "conceptexpr" "(;" ConceptExpr[[SQCtx]] ";)" -> SQConceptExpr[[Ctx]] {cons("SQConceptExpr")} 25 27 "stat" "(;" Stat[[SQCtx]] ";)" -> SQStat[[Ctx]] {cons("SQStat")} 26 28 "decl" "(;" Decl[[SQCtx]] ";)" -> SQDecl[[Ctx]] {cons("SQDecl")} … … 35 37 36 38 SQExpr[[Ctx]] -> SQuoted[[Ctx]] 39 SQConceptExpr[[Ctx]] -> SQuoted[[Ctx]] 37 40 SQStat[[Ctx]] -> SQuoted[[Ctx]] 38 41 SQDecl[[Ctx]] -> SQuoted[[Ctx]] … … 52 55 53 56 "(:" Expr[[DQCtx]] ":)" -> DQExpr[[Ctx]] {cons("DQExpr")} 57 "(:" ConceptExpr[[DQCtx]] ":)" -> DQConceptExpr[[Ctx]] {cons("DQConceptExpr")} 54 58 "(:" Stat[[DQCtx]] ":)" -> DQStat[[Ctx]] {cons("DQStat")} 55 59 "(:" Decl[[DQCtx]] ":)" -> DQDecl[[Ctx]] {cons("DQDecl")} … … 64 68 65 69 "expr" "(:" Expr[[DQCtx]] ":)" -> DQExpr[[Ctx]] {cons("DQExpr")} 70 "conceptexpr" "(:" ConceptExpr[[DQCtx]] ":)" -> DQConceptExpr[[Ctx]] {cons("DQConceptExpr")} 66 71 "stat" "(:" Stat[[DQCtx]] ":)" -> DQStat[[Ctx]] {cons("DQStat")} 67 72 "decl" "(:" Decl[[DQCtx]] ":)" -> DQDecl[[Ctx]] {cons("DQDecl")} … … 76 81 77 82 DQExpr[[Ctx]] -> DQuoted[[Ctx]] 83 DQConceptExpr[[Ctx]] -> DQuoted[[Ctx]] 78 84 DQStat[[Ctx]] -> DQuoted[[Ctx]] 79 85 DQDecl[[Ctx]] -> DQuoted[[Ctx]] … … 91 97 92 98 "(:" Expr[[DQCtx]] ":)" -> Expr[[SQCtx]] {cons("DQExpr")} 99 "(:" ConceptExpr[[DQCtx]] ":)" -> ConceptExpr[[SQCtx]] {cons("DQConceptExpr")} 93 100 "(:" Stat[[DQCtx]] ":)" -> Stat[[SQCtx]] {cons("DQStat")} 94 101 "(:" Decl[[DQCtx]] ":)" -> Decl[[SQCtx]] {cons("DQDecl")} … … 103 110 104 111 "expr" "(:" Expr[[DQCtx]] ":)" -> Expr[[SQCtx]] {cons("DQExpr")} 112 "conceptexpr" "(:" ConceptExpr[[DQCtx]] ":)" -> ConceptExpr[[SQCtx]] {cons("DQConceptExpr")} 105 113 "stat" "(:" Stat[[DQCtx]] ":)" -> Stat[[SQCtx]] {cons("DQStat")} 106 114 "decl" "(:" Decl[[DQCtx]] ":)" -> Decl[[SQCtx]] {cons("DQDecl")} -
MetaXa/src/Meta/MetaSyntax.sdf
r396 r445 30 30 "sugar" MXaSugarDef* -> MXaSugarSection {cons("MXaSyntax")} 31 31 32 "sorts" MXaID+ -> MXaSection {cons("MXaSorts")} 33 32 34 "translate" MXaID MXaArrow MXaID MXaSugarDef* -> MXaSugarSection {cons("MXaXLate")} 33 35 … … 88 90 MXaCons "(" {MXaExpr ","}* ")" -> MXaTerm 89 91 MXaVar -> MXaTerm 92 MXaVar "*" -> MXaTerm 93 MXaVar "+" -> MXaTerm 90 94 MXaExpr ":" MXaExpr -> MXaTerm 91 95 MXaStringLiteral -> MXaTerm 96 92 97 MXaCons "<" {MXaExpr ","}* ">" -> MXaRel 93 98 … … 147 152 context-free syntax 148 153 149 MXaKEYWORD -> MXaToken {cons("MXaKeyword") }150 MXaPUNCT -> MXaToken {cons("MXaSymbol") }151 "\"" MXaSYMBOL "\"" -> MXaToken {cons("MXaSymbol") }154 MXaKEYWORD -> MXaToken {cons("MXaKeyword"), category("Token")} 155 MXaPUNCT -> MXaToken {cons("MXaSymbol"), category("Token")} 156 "\"" MXaSYMBOL "\"" -> MXaToken {cons("MXaSymbol"), category("Token")} 152 157 153 158 %%% ADD LANGUAGE SPECIFIC TOKENS -
MetaXa/src/gen-tbl
r425 r445 5 5 fi 6 6 7 LD_LIBRARY_PATH=$ECLIPSE/plugins/rascal_fragment_linux_0.1.6/installed/lib/ $ECLIPSE/plugins/rascal_fragment_linux_0.1.6/installed/bin/sdf2table -c -m Magnolia -o Magnolia.tbl 7 FRAGMENT=$ECLIPSE/plugins/rascal_fragment_linux_0.1.6 8 8 9 export LD_LIBRARY_PATH=$FRAGMENT/installed/lib/ 10 11 $FRAGMENT/installed/bin/sdf2table -c -m Magnolia -o Magnolia.tbl 12 $FRAGMENT/installed/bin/sdf2table -c -m Meta/MetaSyntax -o MetaXa.tbl -p .:$FRAGMENT/installed/share/sdf-library/library/ 13 14 [ "$1" = "-i" ] && cp *.tbl ../../magnolia-eclipse/lang/ && echo installed -
trunk/src/syn/Magnolia/Core/Declarations.sdf
r425 r445 261 261 context-free syntax 262 262 263 "concept" DeclName -> DeclClause{cons("ConceptClause")}263 "concept" DeclName SubClause* "=" ConceptExpr -> Decl {cons("ConceptClause")} 264 264 %% "theorem" DeclName -> DeclClause {cons("ConceptClause")} 265 265 "implementation" DeclName "on" ConceptExpr "defines" -> DeclClause {cons("ImplClause")} … … 267 267 268 268 269 Name-> DeclName269 Identifier -> DeclName 270 270 271 271 DeclClause -> DeclDeclarative -
trunk/src/syn/Magnolia/Root/Layout.sdf
r350 r445 28 28 29 29 [\ \t\n\r] -> LAYOUT 30 "//" ~[\n]* [\n] -> Comment 30 "//" ~[\n]* [\n] -> Comment {category("Comment")} 31 31 32 32 33 33 [\*] -> ASTERISK 34 "/*" ( ~[\*] | ASTERISK )* "*/" -> Comment 34 "/*" ( ~[\*] | ASTERISK )* "*/" -> Comment {category("Comment")} 35 35 36 36 Comment -> LAYOUT
Note:
See TracChangeset
for help on using the changeset viewer.