Skip to content

Commit 64a65d3

Browse files
committed
Fix handling of source text
1 parent 5d07f83 commit 64a65d3

File tree

1 file changed

+15
-21
lines changed

1 file changed

+15
-21
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/parser/PythonParserImpl.java

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,24 @@
2525
*/
2626
package com.oracle.graal.python.parser;
2727

28+
import java.io.ByteArrayInputStream;
29+
import java.io.ByteArrayOutputStream;
30+
import java.io.DataInputStream;
31+
import java.io.DataOutputStream;
32+
import java.io.IOException;
33+
34+
import org.antlr.v4.runtime.CharStreams;
35+
import org.antlr.v4.runtime.CommonTokenStream;
36+
import org.antlr.v4.runtime.Token;
37+
import org.graalvm.nativeimage.ImageInfo;
38+
39+
import com.oracle.graal.python.PythonFileDetector;
2840
import com.oracle.graal.python.PythonLanguage;
2941
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
3042
import com.oracle.graal.python.nodes.ModuleRootNode;
3143
import com.oracle.graal.python.nodes.function.FunctionDefinitionNode;
3244
import com.oracle.graal.python.nodes.function.GeneratorFunctionDefinitionNode;
3345
import com.oracle.graal.python.nodes.util.BadOPCodeNode;
34-
import org.antlr.v4.runtime.CharStreams;
35-
import org.antlr.v4.runtime.CommonTokenStream;
36-
37-
import com.oracle.graal.python.PythonFileDetector;
3846
import com.oracle.graal.python.parser.antlr.DescriptiveBailErrorListener;
3947
import com.oracle.graal.python.parser.antlr.Python3Lexer;
4048
import com.oracle.graal.python.parser.antlr.Python3Parser;
@@ -59,13 +67,6 @@
5967
import com.oracle.truffle.api.nodes.RootNode;
6068
import com.oracle.truffle.api.source.Source;
6169
import com.oracle.truffle.api.source.SourceSection;
62-
import java.io.ByteArrayInputStream;
63-
import java.io.ByteArrayOutputStream;
64-
import java.io.DataInputStream;
65-
import java.io.DataOutputStream;
66-
import java.io.IOException;
67-
import org.antlr.v4.runtime.Token;
68-
import org.graalvm.nativeimage.ImageInfo;
6970

7071
public final class PythonParserImpl implements PythonParser, PythonCodeSerializer {
7172

@@ -82,15 +83,8 @@ public PythonParserImpl(Env env) {
8283
this.timeStatistics = env.getOptions().get(PythonOptions.ParserStatistics);
8384
}
8485

85-
private static Python3Parser getPython3Parser(Source source, ParserErrorCallback errors) {
86-
Python3Lexer lexer;
87-
try {
88-
lexer = source.getPath() == null
89-
? new Python3Lexer(CharStreams.fromString(source.getCharacters().toString()))
90-
: new Python3Lexer(CharStreams.fromFileName(source.getPath()));
91-
} catch (IOException ex) {
92-
lexer = new Python3Lexer(CharStreams.fromString(source.getCharacters().toString()));
93-
}
86+
private static Python3Parser getPython3Parser(Source source, String sourceText, ParserErrorCallback errors) {
87+
Python3Lexer lexer = new Python3Lexer(CharStreams.fromString(sourceText));
9488
lexer.removeErrorListeners();
9589
lexer.addErrorListener(ERROR_LISTENER);
9690
Python3Parser parser = new Python3Parser(new CommonTokenStream(lexer));
@@ -281,7 +275,7 @@ private CacheItem parseWithANTLR(ParserMode mode, ParserErrorCallback errors, Py
281275
}
282276
}
283277
// ANTLR parsing
284-
Python3Parser parser = getPython3Parser(source, errors);
278+
Python3Parser parser = getPython3Parser(source, sourceText, errors);
285279
parser.setFactory(sstFactory);
286280
SSTNode parserSSTResult = null;
287281

0 commit comments

Comments
 (0)