@@ -874,10 +874,12 @@ def __init__(
874874 exact_tokens : Dict [str , int ],
875875 non_exact_tokens : Set [str ],
876876 file : Optional [IO [Text ]],
877+ class_name : str ,
877878 debug : bool = True ,
878879 skip_actions : bool = False ,
879880 ):
880881 super ().__init__ (grammar , set (tokens .values ()), file )
882+ self .class_name = class_name
881883 self .typingvisitor = TypingVisitor (self ) # Java type hack
882884 self .callmakervisitor = JavaCallMakerVisitor (self , exact_tokens , non_exact_tokens , self .print )
883885 self .lookahead_functions : Dict [str , FunctionCall ] = {}
@@ -930,10 +932,9 @@ def generate(self, filename: str) -> None:
930932 self .print (f"// Generated from { filename } by pegen" )
931933 self .print ("package com.oracle.graal.python.pegparser;" )
932934 self .print (IMPORTS )
933- className = os .path .splitext (os .path .basename (self .file .name ))[0 ]
934935 self .print ('@SuppressWarnings({"all", "cast"})' )
935936 self .print ('@SuppressFBWarnings' )
936- self .print ("public final class %s extends AbstractParser {" % className )
937+ self .print ("public final class %s extends AbstractParser {" % self . class_name )
937938 # Java needs a few fields declarations. Also, we're now in a class
938939 self .level += 1
939940 self .print ()
@@ -945,12 +946,12 @@ def generate(self, filename: str) -> None:
945946 self .print (f"private static final int { rulename .upper ()} _ID = { i } ;{ comment } " )
946947 self .print ()
947948 # Java needs a constructor
948- self .print ("public %s(String source, SourceRange sourceRange, ParserCallbacks parserCb, InputType startRule, EnumSet<Flags> flags, int featureVersion) {" % className )
949+ self .print ("public %s(String source, SourceRange sourceRange, ParserCallbacks parserCb, InputType startRule, EnumSet<Flags> flags, int featureVersion) {" % self . class_name )
949950 with self .indent ():
950951 self .print ("super(source, sourceRange, parserCb, startRule, flags, featureVersion);" )
951952 self .print ("}" )
952953 self .print ()
953- self .print ("public %s(String source, ParserCallbacks parserCb, InputType startRule, EnumSet<Flags> flags, int featureVersion) {" % className )
954+ self .print ("public %s(String source, ParserCallbacks parserCb, InputType startRule, EnumSet<Flags> flags, int featureVersion) {" % self . class_name )
954955 with self .indent ():
955956 self .print ("super(source, null, parserCb, startRule, flags, featureVersion);" )
956957 self .print ("}" )
0 commit comments