diff options
author | JesusFreke@JesusFreke.com <JesusFreke@JesusFreke.com@55b6fa8a-2a1e-11de-a435-ffa8d773f76a> | 2010-06-13 20:34:29 +0000 |
---|---|---|
committer | JesusFreke@JesusFreke.com <JesusFreke@JesusFreke.com@55b6fa8a-2a1e-11de-a435-ffa8d773f76a> | 2010-06-13 20:34:29 +0000 |
commit | 1c42f47ada109cfca03a0ba03e8c5d0b3b0d3b15 (patch) | |
tree | 44a2b79c521660ce41cb6fe475f3b6c6fd12da13 /smali/src | |
parent | 9ac6fa5048d851c4afd92534e16cf794bed87ec6 (diff) | |
download | smali-1c42f47ada109cfca03a0ba03e8c5d0b3b0d3b15.tar.gz |
Add support for reporting of the source file name from the lexer, to be used for error messages
git-svn-id: https://smali.googlecode.com/svn/trunk@755 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
Diffstat (limited to 'smali/src')
-rw-r--r-- | smali/src/main/java/org/jf/smali/main.java | 1 | ||||
-rw-r--r-- | smali/src/main/jflex/smaliLexer.flex | 15 |
2 files changed, 14 insertions, 2 deletions
diff --git a/smali/src/main/java/org/jf/smali/main.java b/smali/src/main/java/org/jf/smali/main.java index b98aedd4..6422525c 100644 --- a/smali/src/main/java/org/jf/smali/main.java +++ b/smali/src/main/java/org/jf/smali/main.java @@ -276,6 +276,7 @@ public class main { InputStreamReader reader = new InputStreamReader(fis, "UTF-8"); lexer = new smaliFlexLexer(reader); + ((smaliFlexLexer)lexer).setSourceFile(smaliFile); tokens = new CommonTokenStream((TokenSource)lexer); } diff --git a/smali/src/main/jflex/smaliLexer.flex b/smali/src/main/jflex/smaliLexer.flex index 1270d343..d5269c67 100644 --- a/smali/src/main/jflex/smaliLexer.flex +++ b/smali/src/main/jflex/smaliLexer.flex @@ -1,7 +1,8 @@ package org.jf.smali; +import java.io.*; import org.antlr.runtime.*; - +import org.jf.util.*; import static org.jf.smali.smaliParser.*; %% @@ -25,6 +26,8 @@ import static org.jf.smali.smaliParser.*; private int lexerErrors = 0; + private File sourceFile; + public Token nextToken() { try { Token token = yylex(); @@ -55,8 +58,16 @@ import static org.jf.smali.smaliParser.*; return this.yycolumn; } + public void setSourceFile(File sourceFile) { + this.sourceFile = sourceFile; + } + public String getSourceName() { - return ""; + try { + return PathUtil.getRelativeFile(new File("."), sourceFile).getPath(); + } catch (IOException ex) { + return sourceFile.getAbsolutePath(); + } } public int getNumberOfSyntaxErrors() { |