aboutsummaryrefslogtreecommitdiff
path: root/smali/src
diff options
context:
space:
mode:
authorJesusFreke@JesusFreke.com <JesusFreke@JesusFreke.com@55b6fa8a-2a1e-11de-a435-ffa8d773f76a>2010-06-13 20:34:29 +0000
committerJesusFreke@JesusFreke.com <JesusFreke@JesusFreke.com@55b6fa8a-2a1e-11de-a435-ffa8d773f76a>2010-06-13 20:34:29 +0000
commit1c42f47ada109cfca03a0ba03e8c5d0b3b0d3b15 (patch)
tree44a2b79c521660ce41cb6fe475f3b6c6fd12da13 /smali/src
parent9ac6fa5048d851c4afd92534e16cf794bed87ec6 (diff)
downloadsmali-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.java1
-rw-r--r--smali/src/main/jflex/smaliLexer.flex15
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() {