From d579ceb7830406ae743aa3da274017d5e8a7bfa7 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Thu, 16 Jul 2020 20:10:38 +0100 Subject: refactor(3p/nix/libexpr): Extract parser header out of Yacc file First step (of many?) towards extracting all the inline code from the Yacc file and keeping it somewhere more accessible instead. Note that none of this code has previously been touched by a linter or formatter, pretty much ever, so as it is extracted it also undergoes similar changes to the whole codebase after the initial fork. Change-Id: If3b7181f22e3b3fd8c58dfa9befa7ee2896ea06d Reviewed-on: https://cl.tvl.fyi/c/depot/+/1217 Tested-by: BuildkiteCI Reviewed-by: isomer --- third_party/nix/src/libexpr/parser.y | 55 +----------------------------------- 1 file changed, 1 insertion(+), 54 deletions(-) (limited to 'third_party/nix/src/libexpr/parser.y') diff --git a/third_party/nix/src/libexpr/parser.y b/third_party/nix/src/libexpr/parser.y index 2ea84fea66..9df9b3081a 100644 --- a/third_party/nix/src/libexpr/parser.y +++ b/third_party/nix/src/libexpr/parser.y @@ -11,44 +11,7 @@ %expect 1 %expect-rr 1 -%code requires { - -#ifndef BISON_HEADER -#define BISON_HEADER - -#include -#include -#include "libutil/util.hh" -#include "libexpr/nixexpr.hh" -#include "libexpr/eval.hh" -#include - -namespace nix { - - struct ParseData - { - EvalState & state; - SymbolTable & symbols; - Expr* result; - Path basePath; - std::optional path; - std::string error; - Symbol sLetBody; - ParseData(EvalState & state) - : state(state) - , symbols(state.symbols) - , sLetBody(symbols.Create("")) - { }; - }; - -} - -#define YY_DECL int yylex \ - (YYSTYPE * yylval_param, YYLTYPE * yylloc_param, yyscan_t yyscanner, nix::ParseData * data) - -#endif - -} +%code requires { #include "libexpr/parser.hh" } %{ @@ -59,24 +22,8 @@ YY_DECL; using namespace nix; - namespace nix { - -static void dupAttr(const AttrPath & attrPath, const Pos & pos, const Pos & prevPos) -{ - throw ParseError(format("attribute '%1%' at %2% already defined at %3%") - % showAttrPath(attrPath) % pos % prevPos); -} - - -static void dupAttr(Symbol attr, const Pos & pos, const Pos & prevPos) -{ - throw ParseError(format("attribute '%1%' at %2% already defined at %3%") - % attr % pos % prevPos); -} - - static void addAttr(ExprAttrs * attrs, AttrPath & attrPath, Expr * e, const Pos & pos) { -- cgit 1.4.1