about summary refs log tree commit diff
path: root/src/libexpr/nix.sdf
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/nix.sdf')
-rw-r--r--src/libexpr/nix.sdf141
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? -/- [\/].[\*]