Mercurial Hosting > luan
annotate core/src/luan/LuanElement.java @ 499:fa4af530697f
add http/dump
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 18 May 2015 14:24:50 -0600 |
parents | 5d4a78c93383 |
children |
rev | line source |
---|---|
40
e3624b7cd603
implement stack trace
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
1 package luan; |
e3624b7cd603
implement stack trace
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
2 |
e3624b7cd603
implement stack trace
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
3 |
460 | 4 public final class LuanElement { |
5 public final LuanSource source; | |
6 public final int start; | |
7 public final int end; | |
8 private final String text; | |
9 | |
10 public LuanElement(LuanSource source,int start,int end) { | |
11 this(source,start,end,null); | |
12 } | |
40
e3624b7cd603
implement stack trace
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
13 |
460 | 14 public LuanElement(LuanSource source,int start,int end,String text) { |
15 if( source==null ) | |
16 throw new NullPointerException("source is null"); | |
17 this.source = source; | |
18 this.start = start; | |
19 while( end > 0 && Character.isWhitespace(source.text.charAt(end-1)) ) { | |
20 end--; | |
21 } | |
22 this.end = end; | |
23 this.text = text; | |
24 } | |
25 | |
26 public String text() { | |
27 return text!=null ? text : source.text.substring(start,end); | |
28 } | |
29 | |
481
5d4a78c93383
luan errors are now tables
Franklin Schmidt <fschmidt@gmail.com>
parents:
460
diff
changeset
|
30 int lineNumber() { |
460 | 31 int line = 0; |
32 int i = -1; | |
33 do { | |
34 line++; | |
35 i = source.text.indexOf('\n',i+1); | |
36 } while( i != -1 && i < start ); | |
37 return line; | |
38 } | |
39 | |
40
e3624b7cd603
implement stack trace
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
40 } |