parses property

  1. @override
Map<String, List<Parse>> parses
override

Implementation

@override
Map<String, List<Parse>> get parses => {
      'commentsandwhitespace': [
        Parse(r'\s+', Token.Text),
        Parse(r'<!--', Token.Comment),
        Parse(r'//.*?\n', Token.CommentSingle),
        Parse(r'/\*.*?\*/', Token.CommentMultiline)
      ],
      'slashstartsregex': [
        Parse.include('commentsandwhitespace'),
        Parse(
            r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
            r'([gim]+\b|\B)',
            Token.StringRegex,
            [POP]),
        Parse(r'(?=/)', Token.Text, [POP, 'badregex']),
        Parse.empty([POP])
      ],
      'badregex': [
        Parse(r'\n', Token.Text, [POP])
      ],
      'root': [
        Parse(r'^(?=\s|/|<!--)', Token.Text, ['slashstartsregex']),
        Parse.include('commentsandwhitespace'),
        Parse(
            r'\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|'
            r'(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?',
            Token.Operator,
            ['slashstartsregex']),
        Parse(r'[{(\[;,]', Token.Punctuation, ['slashstartsregex']),
        Parse(r'[})\].]', Token.Punctuation),
        Parse(
            r'(for|in|while|do|break|return|continue|switch|case|default|if|else|'
            r'throw|try|catch|finally|new|delete|typeof|instanceof|void|of|'
            r'this)\b',
            Token.Keyword,
            ['slashstartsregex']),
        Parse(r'(var|let|with|const|function)\b', Token.KeywordDeclaration,
            ['slashstartsregex']),
        Parse(
            r'(abstract|async|await|boolean|byte|char|class|debugger|double|enum|export|'
            r'extends|final|float|goto|implements|import|int|interface|long|native|'
            r'package|private|protected|public|short|static|super|synchronized|throws|'
            r'transient|volatile)\b',
            Token.KeywordReserved),
        Parse(r'(true|false|null|NaN|Infinity|undefined)\b',
            Token.KeywordConstant),
        Parse(
            r'(Array|Boolean|Date|Error|Function|Math|netscape|'
            r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
            r'decodeURIComponent|encodeURI|encodeURIComponent|'
            r'Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|'
            r'window)\b',
            Token.NameBuiltin),
        // Match stuff like: module name {...}
        Parse.bygroups(
            r'\b(module)(\s*)(\s*[\w?.$][\w?.$]*)(\s*)',
            [Token.KeywordReserved, Token.Text, Token.NameOther, Token.Text],
            ['slashstartsregex']),
        // Match variable type keywords
        Parse(r'\b(string|bool|number)\b', Token.KeywordType),
        // Match things like: constructor
        Parse(r'\b(constructor|declare|interface|as|AS)\b',
            Token.KeywordReserved),
        // Match things like: super(argument, list)
        Parse.bygroups(r'(super)(\s*)(\([\w,?.$\s]+\s*\))',
            [Token.KeywordReserved, Token.Text], ['slashstartsregex']),
        // Match things like: function() {...}
        Parse(r'([a-zA-Z_?.$][\w?.$]*)\(\) \{', Token.NameOther,
            ['slashstartsregex']),
        // Match things like: (function: return type)
        Parse.bygroups(r'([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)',
            [Token.NameOther, Token.Text, Token.KeywordType]),
        Parse(r'[$a-zA-Z_]\w*', Token.NameOther),
        Parse(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Token.NumberFloat),
        Parse(r'0x[0-9a-fA-F]+', Token.NumberHex),
        Parse(r'[0-9]+', Token.NumberInteger),
        Parse(r'"(\\\\|\\"|[^"])*"', Token.StringDouble),
        Parse(r"'(\\\\|\\'|[^'])*'", Token.StringSingle),
        Parse(r'`', Token.StringBacktick, ['interp']),
        // Match things like: Decorators
        Parse(r'@\w+', Token.KeywordDeclaration),
      ],
      'interp': _jsLexer.parses['interp']!,
      'interp-inside': _jsLexer.parses['interp-inside']!,
    };