| 85 | if(funct.hasOwnProperty(t)){warning(funct[t]===true?"'{a}' was used before it was defined.":"'{a}' is already defined.",nexttoken,t);} |
| 86 | funct[t]=type;if(type==='label'){scope[t]=funct;}else if(funct['(global)']){global[t]=funct;if(implied.hasOwnProperty(t)){warning("'{a}' was used before it was defined.",nexttoken,t);delete implied[t];}}else{funct['(scope)'][t]=funct;}} |
| 87 | function doOption(){var b,obj,filter,o=nexttoken.value,t,v;switch(o){case'*/':error("Unbegun comment.");break;case'/*global':case'/*extern':if(option.adsafe){warning("ADsafe restriction.");} |
| 88 | obj=predefined;break;case'/*members':case'/*member':o='/*members';if(!membersOnly){membersOnly={};} |
| 89 | obj=membersOnly;break;case'/*jslint':if(option.adsafe){warning("ADsafe restriction.");} |
| 90 | obj=option;filter=boolOptions;} |
| 91 | for(;;){t=lex.token();if(t.id===','){t=lex.token();} |
| 92 | while(t.id==='(endline)'){t=lex.token();} |
| 93 | if(t.type==='special'&&t.value==='*/'){break;} |
| 94 | if(t.type!=='(string)'&&t.type!=='(identifier)'&&o!=='/*members'){error("Bad option.",t);} |
| 95 | if(filter){if(filter[t.value]!==true){error("Bad option.",t);} |
| 96 | v=lex.token();if(v.id!==':'){error("Expected '{a}' and instead saw '{b}'.",t,':',t.value);} |
| 97 | v=lex.token();if(v.value==='true'){b=true;}else if(v.value==='false'){b=false;}else{error("Expected '{a}' and instead saw '{b}'.",t,'true',t.value);}}else{b=true;} |
| 98 | obj[t.value]=b;} |
| 99 | if(filter){assume();}} |
| 100 | function peek(p){var i=p||0,j=0,t;while(j<=i){t=lookahead[j];if(!t){t=lookahead[j]=lex.token();} |
| 101 | j+=1;} |
| 102 | return t;} |