import { s as simpleMode } from './simple-mode-e317f067.js';

var from="from",fromRegex=new RegExp("^(\\s*)\\b("+from+")\\b","i"),shells=["run","cmd","entrypoint","shell"],shellsAsArrayRegex=new RegExp("^(\\s*)("+shells.join("|")+")(\\s+\\[)","i"),expose="expose",exposeRegex=new RegExp("^(\\s*)("+expose+")(\\s+)","i"),others=["arg","from","maintainer","label","env","add","copy","volume","user","workdir","onbuild","stopsignal","healthcheck","shell"],instructions=[from,expose].concat(shells).concat(others),instructionRegex="("+instructions.join("|")+")",instructionOnlyLine=new RegExp("^(\\s*)"+instructionRegex+"(\\s*)(#.*)?$","i"),instructionWithArguments=new RegExp("^(\\s*)"+instructionRegex+"(\\s+)","i");const dockerFile=simpleMode({start:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:fromRegex,token:[null,"keyword"],sol:!0,next:"from"},{regex:instructionOnlyLine,token:[null,"keyword",null,"error"],sol:!0},{regex:shellsAsArrayRegex,token:[null,"keyword",null],sol:!0,next:"array"},{regex:exposeRegex,token:[null,"keyword",null],sol:!0,next:"expose"},{regex:instructionWithArguments,token:[null,"keyword",null],sol:!0,next:"arguments"},{regex:/./,token:null}],from:[{regex:/\s*$/,token:null,next:"start"},{regex:/(\s*)(#.*)$/,token:[null,"error"],next:"start"},{regex:/(\s*\S+\s+)(as)/i,token:[null,"keyword"],next:"start"},{token:null,next:"start"}],single:[{regex:/(?:[^\\']|\\.)/,token:"string"},{regex:/'/,token:"string",pop:!0}],double:[{regex:/(?:[^\\"]|\\.)/,token:"string"},{regex:/"/,token:"string",pop:!0}],array:[{regex:/\]/,token:null,next:"start"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"}],expose:[{regex:/\d+$/,token:"number",next:"start"},{regex:/[^\d]+$/,token:null,next:"start"},{regex:/\d+/,token:"number"},{regex:/[^\d]+/,token:null},{token:null,next:"start"}],arguments:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:/"(?:[^\\"]|\\.)*"?$/,token:"string",next:"start"},{regex:/"/,token:"string",push:"double"},{regex:/'(?:[^\\']|\\.)*'?$/,token:"string",next:"start"},{regex:/'/,token:"string",push:"single"},{regex:/[^#"']+[\\`]$/,token:null},{regex:/[^#"']+$/,token:null,next:"start"},{regex:/[^#"']+/,token:null},{token:null,next:"start"}],languageData:{commentTokens:{line:"#"}}});

export { dockerFile };
