EOS 2  1.1.0
Einfache Objektbasierte Sprache
Marker.java
gehe zur Dokumentation dieser Datei
1 package de.lathanda.eos.vm;
2 
11 public class Marker {
12  private int beginLine = Integer.MAX_VALUE;
13  private int endLine = Integer.MIN_VALUE;
14  private int beginPosition = Integer.MAX_VALUE;
15  private int endPosition = Integer.MIN_VALUE;
16  private ProgramNode node;
17 
18  public Marker() {
19  }
20 
21  public Marker(ProgramNode source, ProgramNode target) {
22  super();
23  Marker marker = source.getMarker();
24  this.beginLine = marker.beginLine;
25  this.endLine = marker.endLine;
26  this.beginPosition = marker.beginPosition;
27  this.endPosition = marker.endPosition;
28  this.node = target;
29  }
30 
31  public Marker(int beginColumn, int beginLine, int endColumn, int endLine) {
32  this.beginPosition = beginColumn;
33  this.beginLine = beginLine;
34  this.endPosition = endColumn;
35  this.endLine = endLine;
36  }
37 
38  public final void begin(int beginColumn, int beginLine) {
39  this.beginPosition = beginColumn;
40  this.beginLine = beginLine;
41  }
42 
43  public final void end(int endColumn, int endLine) {
44  this.endPosition = endColumn;
45  this.endLine = endLine;
46  }
47 
48  public int getBeginLine() {
49  return beginLine;
50  }
51 
52  public int getEndLine() {
53  return endLine;
54  }
55 
56  public int getBeginPosition() {
57  return beginPosition;
58  }
59 
60  public int getEndPosition() {
61  return endPosition;
62  }
63 
64  public int getLength() {
65  return endPosition - beginPosition + 1;
66  }
67 
68  public boolean contains(int pos) {
69  return beginPosition < pos && endPosition > pos;
70  }
71 
72  public ProgramNode getNode() {
73  return node;
74  }
75 
76  public void setNode(ProgramNode node) {
77  this.node = node;
78  }
79 
80  @Override
81  public String toString() {
82  return "Marker{line = " + beginLine + " - " + endLine + " position = " + beginPosition + " - " + endPosition
83  + '}';
84  }
85 
86  public void extend(Marker marker) {
87  beginPosition = Math.min(marker.beginPosition, beginPosition);
88  beginLine = Math.min(marker.beginLine, beginLine);
89  endPosition = Math.max(marker.endPosition, endPosition);
90  endLine = Math.max(marker.endLine, endLine);
91 
92  }
93 }
boolean contains(int pos)
Definition: Marker.java:68
void extend(Marker marker)
Definition: Marker.java:86
Marker(int beginColumn, int beginLine, int endColumn, int endLine)
Definition: Marker.java:31
ProgramNode getNode()
Definition: Marker.java:72
Marker(ProgramNode source, ProgramNode target)
Definition: Marker.java:21
final void begin(int beginColumn, int beginLine)
Definition: Marker.java:38
final void end(int endColumn, int endLine)
Definition: Marker.java:43
void setNode(ProgramNode node)
Definition: Marker.java:76
Impressum