| 177 | r=parse(0,true);if(!t.block){if(nexttoken.id!==';'){warningAt("Missing semicolon.",token.line,token.from+token.value.length);}else{adjacent(token,nexttoken);advance(';');nonadjacent(token,nexttoken);}} |
| 178 | indent=i;scope=s;return r;} |
| 179 | function statements(begin){var a=[];if(begin){if(option.adsafe&&nexttoken.type!=='(string)'){warning('ADsafe violation: Missing "use strict" statement.',nexttoken);} |
| 180 | if(nexttoken.type==='(string)'&&nexttoken.value.slice(0,10)==='use strict'){advance();advance(';');}} |
| 181 | if(option.adsafe){switch(begin){case'script':if(!adsafe_may){if(nexttoken.value!=='ADSAFE'||peek(0).id!=='.'||(peek(1).value!=='id'&&peek(1).value!=='go')){error('ADsafe violation: Missing ADSAFE.id or ADSAFE.go.',nexttoken);}} |
| 182 | if(nexttoken.value==='ADSAFE'&&peek(0).id==='.'&&peek(1).value==='id'){if(adsafe_may){error('ADsafe violation.',nexttoken);} |
| 183 | advance('ADSAFE');advance('.');advance('id');advance('(');if(nexttoken.value!==adsafe_id){error('ADsafe violation: id does not match.',nexttoken);} |
| 184 | advance('(string)');advance(')');advance(';');adsafe_may=true;} |
| 185 | break;case'lib':if(nexttoken.value==='ADSAFE'){advance('ADSAFE');advance('.');advance('lib');advance('(');advance('(string)');advance(',');parse(0);advance(')');advance(';');return a;}else{error("ADsafe lib violation.");}}} |
| 186 | while(!nexttoken.reach&&nexttoken.id!=='(end)'){if(nexttoken.id===';'){warning("Unnecessary semicolon.");advance(';');}else{a.push(statement());}} |
| 187 | return a;} |
| 188 | function block(f){var a,b=inblock,s=scope;inblock=f;if(f){scope=Object.beget(scope);} |
| 189 | nonadjacent(token,nexttoken);var t=nexttoken;if(nexttoken.id==='{'){advance('{');if(nexttoken.id!=='}'||token.line!==nexttoken.line){indent+=option.indent;if(!f&&nexttoken.from===indent+option.indent){indent+=option.indent;} |
| 190 | a=statements();indent-=option.indent;indentation();} |