Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.dynjs.parser.js;
  
  import java.util.HashSet;
  import java.util.Set;
  
  class ParserContext {
  
      enum ContextType {
          PROGRAM,
         FUNCTION,
         ITERATION,
         SWITCH,
         OTHER,
     }
 
     private ParserContext parent;
     private ContextType type;
     private Set<Stringlabels = new HashSet<>();
     private boolean inProlog = true;
     private boolean strict;
 
     ParserContext(ContextType type) {
         this(nulltype);
     }
 
     ParserContext(ParserContext parentContextType type) {
         this. = parent;
         this. = type;
         this. = false;
     }
 
     boolean isValidForFunctionDeclaration() {
         if (!this.) {
             return true;
         }
 
         return ( == . ||  == .);
     }
 
     void addLabel(String label) {
         this..add(label);
     }
 
     void removeLabel(String label) {
         this..remove(label);
     }
 
     Set<StringgetLabels() {
         return this.;
     }
 
     boolean isStrict() {
         return this.;
     }
 
     void setStrict(boolean strict) {
         this. = strict;
     }
 
     boolean isInProlog() {
         return this.;
     }
 
     void setInProlog(boolean inProlog) {
         this. = inProlog;
     }
 
     boolean isValidReturn() {
         if ( this. == . ) {
             return false;
         }
         
         if ( this. == . ) {
             return true;
         }
         
         if ( this. != null ) {
             return this..isValidReturn();
         }
         
         return false;
     }
 
     boolean isValidBreak(String label) {
         if (label == null) {
             if (this. == . || this. == .) {
                 return true;
             }
             if ( this. != . && this. != null ) {
                 return this..isValidBreak(label);
             }
             return false;
         }
 
         return isValidLabel(label);
     }
 
     boolean isValidContinue(String label) {
 
        if (this. == . && this. != null) {
            return this..isValidContinue(label);
        }
        if (this. != .) {
            if (this. != . && this. != null) {
                return this..isValidContinue(label);
            }
            return false;
        }
        return isValidLabel(label);
    }
    boolean isValidLabel(String label) {
        if (label == null) {
            return true;
        }
        if (this..contains(label)) {
            return true;
        }
        if (this. != . && this. != null) {
            return this..isValidLabel(label);
        }
        return false;
    }
    public String toString() {
        return "[Context: type=" + this. + "]";
    }
New to GrepCode? Check out our FAQ X