---input--- // regex blah(/abc/); x = /abc/; x = /abc/.match; // math blah(1/2); //comment x = 1 / 2 / 3; x = 1/1/.1; // broken x=/1/; x=1/a/g; x=a/a/g; // real-world var x = 1/(1+Math.sqrt(sum)); // convert to number between 1-0 return Math.round((num / den) * 100)/100; ---tokens--- '' Text '// regex\n' Comment.Single '\n' Text 'blah' Name.Other '(' Punctuation '/abc/' Literal.String.Regex ')' Punctuation ';' Punctuation '\n' Text 'x' Name.Other ' ' Text '=' Operator ' ' Text '/abc/' Literal.String.Regex ';' Punctuation '\n' Text 'x' Name.Other ' ' Text '=' Operator ' ' Text '/abc/' Literal.String.Regex '.' Punctuation 'match' Name.Other ';' Punctuation '\n\n' Text '// math\n' Comment.Single '\n' Text 'blah' Name.Other '(' Punctuation '1' Literal.Number.Float '/' Operator '2' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text '//comment\n' Comment.Single 'x' Name.Other ' ' Text '=' Operator ' ' Text '1' Literal.Number.Float ' ' Text '/' Operator ' ' Text '2' Literal.Number.Float ' ' Text '/' Operator ' ' Text '3' Literal.Number.Float ';' Punctuation '\n' Text 'x' Name.Other ' ' Text '=' Operator ' ' Text '1' Literal.Number.Float '/' Operator '1' Literal.Number.Float '/' Operator '.1' Literal.Number.Float ';' Punctuation '\n\n' Text '// broken\n' Comment.Single '\n' Text 'x' Name.Other '=' Operator '/1/' Literal.String.Regex ';' Punctuation '\n' Text 'x' Name.Other '=' Operator '1' Literal.Number.Float '/' Operator 'a' Name.Other '/' Operator 'g' Name.Other ';' Punctuation '\n' Text 'x' Name.Other '=' Operator 'a' Name.Other '/' Operator 'a' Name.Other '/' Operator 'g' Name.Other ';' Punctuation '\n\n' Text '// real-world\n' Comment.Single '\n' Text 'var' Keyword.Declaration ' ' Text 'x' Name.Other ' ' Text '=' Operator ' ' Text '1' Literal.Number.Float '/' Operator '(' Punctuation '1' Literal.Number.Float '+' Operator 'Math' Name.Builtin '.' Punctuation 'sqrt' Name.Other '(' Punctuation 'sum' Name.Other ')' Punctuation ')' Punctuation ';' Punctuation ' ' Text '// convert to number between 1-0\n' Comment.Single 'return' Keyword ' ' Text 'Math' Name.Builtin '.' Punctuation 'round' Name.Other '(' Punctuation '(' Punctuation 'num' Name.Other ' ' Text '/' Operator ' ' Text 'den' Name.Other ')' Punctuation ' ' Text '*' Operator ' ' Text '100' Literal.Number.Float ')' Punctuation '/' Operator '100' Literal.Number.Float ';' Punctuation '\n' Text