From 1c42f47ada109cfca03a0ba03e8c5d0b3b0d3b15 Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Sun, 13 Jun 2010 20:34:29 +0000 Subject: 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 --- smali/src/main/java/org/jf/smali/main.java | 1 + smali/src/main/jflex/smaliLexer.flex | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'smali/src') 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() { -- cgit v1.2.3