--- /dev/null
+``make regen-all`` now produces the same output when run from a directory
+other than the source tree: when building Python out of the source tree.
+pegen now strips directory of the "generated by pygen from <FILENAME" header
+Patch by Victor Stinner.
-// @generated by pegen from ./Grammar/python.gram
+// @generated by pegen from python.gram
#include "pegen.h"
#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
import ast
+import os.path
import re
from dataclasses import dataclass, field
from enum import Enum
def generate(self, filename: str) -> None:
self.collect_rules()
- self.print(f"// @generated by pegen from {filename}")
+ basename = os.path.basename(filename)
+ self.print(f"// @generated by pegen from {basename}")
header = self.grammar.metas.get("header", EXTENSION_PREFIX)
if header:
self.print(header.rstrip("\n"))
#!/usr/bin/env python3.8
-# @generated by pegen from ./Tools/peg_generator/pegen/metagrammar.gram
+# @generated by pegen from metagrammar.gram
import ast
import sys
+import os.path
import token
from typing import IO, Any, Dict, Optional, Sequence, Set, Text, Tuple
self.collect_rules()
header = self.grammar.metas.get("header", MODULE_PREFIX)
if header is not None:
- self.print(header.rstrip("\n").format(filename=filename))
+ basename = os.path.basename(filename)
+ self.print(header.rstrip("\n").format(filename=basename))
subheader = self.grammar.metas.get("subheader", "")
if subheader:
self.print(subheader)