Commits

Jan Lahoda  committed 6c7684e

Parse lazyli.

  • Participants
  • Parent commits e00c13d

Comments (0)

Files changed (1)

File src/org/netbeans/examples/props/parsing/PropsParser.java

 
 public class PropsParser extends Parser {
 
+    private Snapshot snpsht;
     private PropsParserResult result;
     
     @Override
     public void parse(Snapshot snpsht, Task task, SourceModificationEvent sme) throws ParseException {
+        this.snpsht = snpsht;
+        this.result = null;
+    }
+
+    private PropsParserResult doParse() {
         final TokenHierarchy<?> th = snpsht.getTokenHierarchy();
         TokenSequence<PropsTokenId> ts = th.tokenSequence(PropsTokenId.language());
         Collection<Mapping> mapping = new ArrayList<Mapping>();
         String lastKey = "";
         int[] keySpan = new int[] {0, 0};
-        
+
         while (ts.moveNext()) {
             Token<PropsTokenId> t = ts.token();
-            
+
             switch (t.id()) {
                 case KEY:
                     lastKey = t.text().toString();
                     break;
             }
         }
-        
-        result = new PropsParserResult(snpsht, mapping);
+
+        return new PropsParserResult(snpsht, mapping);
     }
-
+    
     @Override
     public Result getResult(Task task) throws ParseException {
+        if (result == null) {
+            result = doParse();
+        }
         return result;
     }