anchor.diff:            
             var before = stack.removeFirst();
             var include = match.input.substring(before['end'], match.start);
  -          if(before['include'] == 1 || before['include'] == 2){
  -            if(include[0]=='(' && include.substring(include.length-1)==')') include = include.substring(1,include.length-1);
  +          if (before['include'] == 1 || before['include'] == 2) {
  +            if (include[0]=='(' && include.substring(include.length-1)==')') {
  +              include = include.substring(1,include.length-1);
  +            }
               include = include.split('||');
  -            if(include.length != 2) return completer.completeError(new Exception('ifelse : '+include.length+' != 2 : '+include.join('||')));
  +            if (include.length != 2) {
  +              return completer.completeError(new Exception('ifelse : '+include.length+' != 2 : '+include.join('||')));
  +            }
               include = include[before['include']-1];
  -          }else if(!before['include']) include='';
  +          } else if (!before['include']) {
  +            include = '';
  +          }
             match.replacePart(before['start'], match.end, include);
             if (instruction == "else" || instruction == "elif" || instruction == "elseif") {
  -            if(instruction=='else') include=!before['include'];
  -            else{
  -              if(content[0]=='!') include = !defines[content.substring(1).trim()];
  -              else include = defines[content];
  +            if (instruction=='else'){
  +              include=!before['include'];
  +            } else if(content[0]=='!') {
  +              include = !defines[content.substring(1).trim()];
  +            } else {
  +              include = defines[content];
               }
               stack.add({ "include": !before["include"], "start": match.lastIndex, "lastIndex": match.lastIndex });
             }
  
positive.code:          
          case 'ifdef': case 'ifndef': case 'if': case 'ifelse':
            var include;
            if (instruction=='ifdef') include = defines.containsKey(content);//!!defines[match2[2]];
            else if (instruction=='ifndef') include = !defines.containsKey(content);//!defines[match2[2]];
            else if (instruction=='ifelse') include = defines[content] ? 1 : 2;
            else{
              Match ifThenMatch = regExpIfThen.firstMatch(content);
              if(ifThenMatch != null){
                include = defines[ifThenMatch[1]] ? ifThenMatch[2] : '';
  
negative.code:   static final int errorSourceAhead = 50;
    static final RegExp regExpIfThen = new RegExp(r'^(.*) then (.*)$');
    
    Preprocessor(String this._type, [ Function this._pathResolver ]){
      var EXPR_INSTRUCTIONS = '(include(?:Once)?|ifn?def|ifelse|if|\/if|endif|else|el(?:se)?if|eval|value|val|setbasedir)';
      
      var multilineRegExp = new RegExp(r'(^[ \t]*)?\/\*[ ]*#[ ]*' + EXPR_INSTRUCTIONS + r'([^\*]*)[ ]*\*\/', multiLine:true);
  