diff options
Diffstat (limited to 'src/libexpr/nix.sdf')
-rw-r--r-- | src/libexpr/nix.sdf | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/src/libexpr/nix.sdf b/src/libexpr/nix.sdf deleted file mode 100644 index 42fb21c3baad..000000000000 --- a/src/libexpr/nix.sdf +++ /dev/null @@ -1,141 +0,0 @@ -%% Note: this SDF grammar is no longer used in the Nix expression -%% parser and may not be up to date. - -definition - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Top level syntax. - -module Main -imports Nix-Exprs Nix-Layout - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Expressions. - -module Nix-Exprs -imports Nix-Lexicals -exports - sorts Expr Formal Bind ExprList - context-free start-symbols Expr - context-free syntax - - Id -> Expr {cons("Var")} - Int -> Expr {cons("Int")} - Str -> Expr {cons("Str")} - Uri -> Expr {cons("Uri")} - Path -> Expr {cons("Path")} - - "(" Expr ")" -> Expr {bracket} - - Expr Expr -> Expr {cons("Call"), left} - - Id ":" Expr -> Expr {cons("Function1")} - "{" {Formal ","}* "}" ":" Expr -> Expr {cons("Function")} - Id -> Formal {cons("NoDefFormal")} - Id "?" Expr -> Formal {cons("DefFormal")} - - "assert" Expr ";" Expr -> Expr {cons("Assert")} - - "with" Expr ";" Expr -> Expr {cons("With")} - - "rec" "{" Bind* "}" -> Expr {cons("Rec")} - "let" Bind* "in" Expr -> Expr {cons("Let")} - "let" "{" Bind* "}" -> Expr {cons("LetRec")} - "{" Bind* "}" -> Expr {cons("Attrs")} - - Id "=" Expr ";" -> Bind {cons("Bind")} - "inherit" ("(" Expr ")")? Id* ";" -> Bind {cons("Inherit")} - - "[" ExprList "]" -> Expr {cons("List")} - -> ExprList {cons("ExprNil")} - Expr ExprList -> ExprList {cons("ExprCons")} - - Expr "." Id -> Expr {cons("Select")} - - "if" Expr "then" Expr "else" Expr -> Expr {cons("If")} - - Expr "==" Expr -> Expr {cons("OpEq"), non-assoc} - Expr "!=" Expr -> Expr {cons("OpNEq"), non-assoc} - - "!" Expr -> Expr {cons("OpNot")} - Expr "&&" Expr -> Expr {cons("OpAnd"), right} - Expr "||" Expr -> Expr {cons("OpOr"), right} - Expr "->" Expr -> Expr {cons("OpImpl"), right} - - Expr "//" Expr -> Expr {cons("OpUpdate"), right} - Expr "~" Expr -> Expr {cons("SubPath"), non-assoc} - Expr "?" Id -> Expr {cons("OpHasAttr")} - Expr "+" Expr -> Expr {cons("OpPlus"), left} - Expr "++" Expr -> Expr {cons("OpConcat"), right} - - context-free priorities - - Expr "." Id -> Expr - > Expr ExprList -> ExprList - > Expr Expr -> Expr - > Expr "~" Expr -> Expr - > Expr "?" Id -> Expr - > Expr "++" Expr -> Expr - > Expr "+" Expr -> Expr - > "!" Expr -> Expr - > Expr "//" Expr -> Expr - > { Expr "==" Expr -> Expr - Expr "!=" Expr -> Expr - } - > Expr "&&" Expr -> Expr - > Expr "||" Expr -> Expr - > Expr "->" Expr -> Expr - > "if" Expr "then" Expr "else" Expr -> Expr - > "assert" Expr ";" Expr -> Expr - > "with" Expr ";" Expr -> Expr - > Id ":" Expr -> Expr - > "{" {Formal ","}* "}" ":" Expr -> Expr - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Lexical syntax. - -module Nix-Lexicals -exports - sorts Id Int Str Path Uri - lexical syntax - [a-zA-Z\_][a-zA-Z0-9\_\']* -> Id - "rec" | "let" | "if" | "then" | "else" | "assert" | "with" | "inherit" -> Id {reject} - - [0-9]+ -> Int - - "\"" (~[\"\\] | ("\\" ~[]) )* "\"" -> Str - "''" (~[\"\\] | ("\\" ~[]) )* "''" -> Str - - [a-zA-Z0-9\.\_\-\+]* ("/"[a-zA-Z0-9\.\_\-\+]+)+ -> Path - - [a-zA-Z] [a-zA-Z0-9\+\-\.]* ":" [a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\']+ -> Uri - - lexical restrictions - Id -/- [a-zA-Z0-9\_\'] - Int -/- [0-9] - Path -/- [a-zA-Z0-9\.\_\-\+\/] - Uri -/- [a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\'] - "rec" "let" "if" "then" "else" "assert" "with" "inherit" -/- [A-Za-z0-9\_\'] - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Layout. - -module Nix-Layout -exports - sorts HashComment Asterisk Comment - lexical syntax - [\ \t\n] -> LAYOUT - HashComment -> LAYOUT - Comment -> LAYOUT - "#" ~[\n]* -> HashComment - "/*" ( ~[\*] | Asterisk )* "*/" -> Comment - [\*] ~[\/] -> Asterisk - lexical restrictions - HashComment -/- ~[\n] - context-free restrictions - LAYOUT? -/- [\ \t\n\#] - LAYOUT? -/- [\/].[\*] |