%%% $Id: Priority.sdf 20989 2007-01-22 14:57:57Z jurgenv $
module languages/sdf2/syntax/Priority
imports languages/sdf2/syntax/Kernel
exports
sorts Associativity ArgumentIndicator Group Priority Priorities
context-free syntax
"left" -> Associativity {cons("left")}
"right" -> Associativity {cons("right")}
"non-assoc" -> Associativity {cons("non-assoc")}
"assoc" -> Associativity {cons("assoc")}
"bracket" -> Attribute {cons("bracket")}
Associativity -> Attribute {cons("assoc")}
"<" arguments:{NatCon ","}+ ">" -> ArgumentIndicator {cons("default")}
Group ArgumentIndicator -> Group {non-assoc,cons("with-arguments")}
Group "." -> Group {non-assoc,cons("non-transitive")}
Production -> Group {cons("simple-group")}
"{" Productions "}" -> Group {cons("prods-group")}
"{" Associativity ":" Productions "}" -> Group {cons("assoc-group")}
list:{Group ">"}+ -> Priority {cons("chain")}
"left":Group Associativity "right":Group -> Priority {cons("assoc")}
%% Production "<" arguments:{NatCon ","}+ ">" ">" Group -> Priority {cons("argument")}
list:{Priority ","}* -> Priorities
"priorities" Priorities -> Grammar {cons("priorities")}