1
0
mirror of https://github.com/alecthomas/chroma.git synced 2025-03-17 20:58:08 +02:00

Add ReasonML lexer

This commit is contained in:
Michael Kohl 2020-05-02 22:32:45 +07:00 committed by Alec Thomas
parent 82f38b96ec
commit 6b8ef36ed9
3 changed files with 686 additions and 0 deletions

67
lexers/r/reasonml.go Normal file
View File

@ -0,0 +1,67 @@
package r
import (
. "github.com/alecthomas/chroma" // nolint
"github.com/alecthomas/chroma/lexers/internal"
)
// Reasonml lexer.
var Reasonml = internal.Register(MustNewLexer(
&Config{
Name: "ReasonML",
Aliases: []string{"reason", "reasonml"},
Filenames: []string{"*.re", "*.rei"},
MimeTypes: []string{"text/x-reasonml"},
},
Rules{
"escape-sequence": {
{`\\[\\"\'ntbr]`, LiteralStringEscape, nil},
{`\\[0-9]{3}`, LiteralStringEscape, nil},
{`\\x[0-9a-fA-F]{2}`, LiteralStringEscape, nil},
},
"root": {
{`\s+`, Text, nil},
{`false|true|\(\)|\[\]`, NameBuiltinPseudo, nil},
{`\b([A-Z][\w\']*)(?=\s*\.)`, NameNamespace, Push("dotted")},
{`\b([A-Z][\w\']*)`, NameClass, nil},
{`//.*?\n`, CommentSingle, nil},
{`\/\*(?![\/])`, CommentMultiline, Push("comment")},
{`\b(as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false|for|fun|esfun|function|functor|if|in|include|inherit|initializer|lazy|let|switch|module|pub|mutable|new|nonrec|object|of|open|pri|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with)\b`, Keyword, nil},
{"(~|\\}|\\|]|\\||\\|\\||\\{<|\\{|`|_|]|\\[\\||\\[>|\\[<|\\[|\\?\\?|\\?|>\\}|>]|>|=|<-|<|;;|;|:>|:=|::|:|\\.\\.\\.|\\.\\.|\\.|=>|-\\.|-|,|\\+|\\*|\\)|\\(|&&|&|#|!=)", OperatorWord, nil},
{`([=<>@^|&+\*/$%-]|[!?~])?[!$%&*+\./:<=>?@^|~-]`, Operator, nil},
{`\b(and|asr|land|lor|lsl|lsr|lxor|mod|or)\b`, OperatorWord, nil},
{`\b(unit|int|float|bool|string|char|list|array)\b`, KeywordType, nil},
{`[^\W\d][\w']*`, Name, nil},
{`-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)`, LiteralNumberFloat, nil},
{`0[xX][\da-fA-F][\da-fA-F_]*`, LiteralNumberHex, nil},
{`0[oO][0-7][0-7_]*`, LiteralNumberOct, nil},
{`0[bB][01][01_]*`, LiteralNumberBin, nil},
{`\d[\d_]*`, LiteralNumberInteger, nil},
{`'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'`, LiteralStringChar, nil},
{`'.'`, LiteralStringChar, nil},
{`'`, Keyword, nil},
{`"`, LiteralStringDouble, Push("string")},
{`[~?][a-z][\w\']*:`, NameVariable, nil},
},
"comment": {
{`[^\/*]+`, CommentMultiline, nil},
{`\/\*`, CommentMultiline, Push()},
{`\*\/`, CommentMultiline, Pop(1)},
{`[\*]`, CommentMultiline, nil},
},
"string": {
{`[^\\"]+`, LiteralStringDouble, nil},
Include("escape-sequence"),
{`\\\n`, LiteralStringDouble, nil},
{`"`, LiteralStringDouble, Pop(1)},
},
"dotted": {
{`\s+`, Text, nil},
{`\.`, Punctuation, nil},
{`[A-Z][\w\']*(?=\s*\.)`, NameNamespace, nil},
{`[A-Z][\w\']*`, NameClass, Pop(1)},
{`[a-z_][\w\']*`, Name, Pop(1)},
Default(Pop(1)),
},
},
))

70
lexers/testdata/reasonml.actual vendored Normal file
View File

@ -0,0 +1,70 @@
// This is a single line comment.
/* A multi line comment, in a single line... */
/* This is a multi line comment
Second Line...
*/
/* This is a nested comment
/* Nested Line... */
*/
module Process_Bind_Without_Do =
(W: Monad_Bind with type m('a) = writer(string, 'a)) => {
let process = s => W.(up_case(s) >>= (up_str => to_words(up_str)));
};
let a = 1 or 2;
let b = 1 || 2;
let c = 1 && 2;
let str = "Hello, Lexer!";
let chr = 'a';
type test;
open Belt;
include Pervasives;
let test: unit => Map.String.t(string) = () => Map.String.empty;
let tup = (1: int, 2: int);
let myRec = {x: 0, y: 10};
let myFuncs = {
myFun: (x) => x + 1,
your: (a, b) => a + b
};
let lst = [1, 2, 3];
let logRest = (lst) =>
switch (lst) {
| [] => Js.log("no entry")
| [hd, ...rest] => Js.log2("Rest: ", rest);
};
let arr = [|1, 2, 3|];
let res = (x) =>
switch (x) {
| HasNothing => 0
| HasSingleInt(x) => 0
| HasSingleTuple((x, y)) => 0
| HasMultipleInts(x, y) => 0
| HasMultipleTuples((x, y), (q, r)) => 0
};
module View = {
[@react.component]
let make = () => {
<div className="view">
<ul>
<li> React.string("Hello, World!") </li>
<li> "pipe"->React.string </li>
<li> <span> "nested"->React.string </span> </li>
</ul>
</div>
}
}

549
lexers/testdata/reasonml.expected vendored Normal file
View File

@ -0,0 +1,549 @@
[
{"type":"CommentSingle","value":"// This is a single line comment.\n"},
{"type":"CommentMultiline","value":"/* A multi line comment, in a single line... */"},
{"type":"Text","value":"\n"},
{"type":"CommentMultiline","value":"/* This is a multi line comment\n Second Line...\n*/"},
{"type":"Text","value":"\n"},
{"type":"CommentMultiline","value":"/* This is a nested comment\n /* Nested Line... */\n*/"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"module"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Process_Bind_Without_Do"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"("},
{"type":"NameClass","value":"W"},
{"type":"OperatorWord","value":":"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Monad_Bind"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"with"},
{"type":"Text","value":" "},
{"type":"Keyword","value":"type"},
{"type":"Text","value":" "},
{"type":"Name","value":"m"},
{"type":"OperatorWord","value":"("},
{"type":"Keyword","value":"'"},
{"type":"Name","value":"a"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"Name","value":"writer"},
{"type":"OperatorWord","value":"("},
{"type":"KeywordType","value":"string"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Keyword","value":"'"},
{"type":"Name","value":"a"},
{"type":"OperatorWord","value":"))"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"{"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"process"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"Name","value":"s"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"NameNamespace","value":"W"},
{"type":"Punctuation","value":"."},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"up_case"},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"s"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"\u003e\u003e="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"up_str"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"Name","value":"to_words"},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"up_str"},
{"type":"OperatorWord","value":")));"},
{"type":"Text","value":"\n"},
{"type":"OperatorWord","value":"};"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"a"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"Name","value":"1"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"or"},
{"type":"Text","value":" "},
{"type":"Name","value":"2"},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"b"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"Name","value":"1"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"||"},
{"type":"Text","value":" "},
{"type":"Name","value":"2"},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"c"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"Name","value":"1"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"\u0026\u0026"},
{"type":"Text","value":" "},
{"type":"Name","value":"2"},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"str"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"Hello, Lexer!\""},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"chr"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"LiteralStringChar","value":"'a'"},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"type"},
{"type":"Text","value":" "},
{"type":"Name","value":"test"},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"open"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Belt"},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"include"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"Pervasives"},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"test"},
{"type":"OperatorWord","value":":"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"unit"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"NameNamespace","value":"Map"},
{"type":"Punctuation","value":"."},
{"type":"NameNamespace","value":"String"},
{"type":"Punctuation","value":"."},
{"type":"Name","value":"t"},
{"type":"OperatorWord","value":"("},
{"type":"KeywordType","value":"string"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"NameBuiltinPseudo","value":"()"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"NameNamespace","value":"Map"},
{"type":"Punctuation","value":"."},
{"type":"NameNamespace","value":"String"},
{"type":"Punctuation","value":"."},
{"type":"Name","value":"empty"},
{"type":"OperatorWord","value":";"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"tup"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"1"},
{"type":"OperatorWord","value":":"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"int"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"2"},
{"type":"OperatorWord","value":":"},
{"type":"Text","value":" "},
{"type":"KeywordType","value":"int"},
{"type":"OperatorWord","value":");"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"myRec"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"{"},
{"type":"Name","value":"x"},
{"type":"OperatorWord","value":":"},
{"type":"Text","value":" "},
{"type":"Name","value":"0"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"y"},
{"type":"OperatorWord","value":":"},
{"type":"Text","value":" "},
{"type":"Name","value":"10"},
{"type":"OperatorWord","value":"};"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"myFuncs"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"{"},
{"type":"Text","value":"\n "},
{"type":"Name","value":"myFun"},
{"type":"OperatorWord","value":":"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"x"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"Name","value":"x"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"+"},
{"type":"Text","value":" "},
{"type":"Name","value":"1"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":"\n "},
{"type":"Name","value":"your"},
{"type":"OperatorWord","value":":"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"a"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"b"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"Name","value":"a"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"+"},
{"type":"Text","value":" "},
{"type":"Name","value":"b"},
{"type":"Text","value":"\n"},
{"type":"OperatorWord","value":"};"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"lst"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"["},
{"type":"Name","value":"1"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"2"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"3"},
{"type":"OperatorWord","value":"];"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"logRest"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"lst"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" \n "},
{"type":"Keyword","value":"switch"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"lst"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"{"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"|"},
{"type":"Text","value":" "},
{"type":"NameBuiltinPseudo","value":"[]"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"NameNamespace","value":"Js"},
{"type":"Punctuation","value":"."},
{"type":"Name","value":"log"},
{"type":"OperatorWord","value":"("},
{"type":"LiteralStringDouble","value":"\"no entry\""},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"|"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"["},
{"type":"Name","value":"hd"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"..."},
{"type":"Name","value":"rest"},
{"type":"OperatorWord","value":"]"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"NameNamespace","value":"Js"},
{"type":"Punctuation","value":"."},
{"type":"Name","value":"log2"},
{"type":"OperatorWord","value":"("},
{"type":"LiteralStringDouble","value":"\"Rest: \""},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"rest"},
{"type":"OperatorWord","value":");"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"};"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"arr"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"[|"},
{"type":"Name","value":"1"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"2"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"3"},
{"type":"OperatorWord","value":"|];"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"res"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"x"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"switch"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"x"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"{"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"|"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"HasNothing"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"Name","value":"0"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"|"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"HasSingleInt"},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"x"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"Name","value":"0"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"|"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"HasSingleTuple"},
{"type":"OperatorWord","value":"(("},
{"type":"Name","value":"x"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"y"},
{"type":"OperatorWord","value":"))"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"Name","value":"0"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"|"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"HasMultipleInts"},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"x"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"y"},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"Name","value":"0"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"|"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"HasMultipleTuples"},
{"type":"OperatorWord","value":"(("},
{"type":"Name","value":"x"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"y"},
{"type":"OperatorWord","value":"),"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"("},
{"type":"Name","value":"q"},
{"type":"OperatorWord","value":","},
{"type":"Text","value":" "},
{"type":"Name","value":"r"},
{"type":"OperatorWord","value":"))"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"Name","value":"0"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"};"},
{"type":"Text","value":"\n\n"},
{"type":"Keyword","value":"module"},
{"type":"Text","value":" "},
{"type":"NameClass","value":"View"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"{"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"["},
{"type":"Operator","value":"@"},
{"type":"Name","value":"react"},
{"type":"OperatorWord","value":"."},
{"type":"Name","value":"component"},
{"type":"OperatorWord","value":"]"},
{"type":"Text","value":"\n "},
{"type":"Keyword","value":"let"},
{"type":"Text","value":" "},
{"type":"Name","value":"make"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"="},
{"type":"Text","value":" "},
{"type":"NameBuiltinPseudo","value":"()"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"=\u003e"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"{"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Name","value":"div"},
{"type":"Text","value":" "},
{"type":"Name","value":"className"},
{"type":"OperatorWord","value":"="},
{"type":"LiteralStringDouble","value":"\"view\""},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":" \n "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Name","value":"ul"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Name","value":"li"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":" "},
{"type":"NameNamespace","value":"React"},
{"type":"Punctuation","value":"."},
{"type":"Name","value":"string"},
{"type":"OperatorWord","value":"("},
{"type":"LiteralStringDouble","value":"\"Hello, World!\""},
{"type":"OperatorWord","value":")"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Operator","value":"/"},
{"type":"Name","value":"li"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Name","value":"li"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"pipe\""},
{"type":"OperatorWord","value":"-\u003e"},
{"type":"NameNamespace","value":"React"},
{"type":"Punctuation","value":"."},
{"type":"Name","value":"string"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Operator","value":"/"},
{"type":"Name","value":"li"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Name","value":"li"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Name","value":"span"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":" "},
{"type":"LiteralStringDouble","value":"\"nested\""},
{"type":"OperatorWord","value":"-\u003e"},
{"type":"NameNamespace","value":"React"},
{"type":"Punctuation","value":"."},
{"type":"Name","value":"string"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Operator","value":"/"},
{"type":"Name","value":"span"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":" "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Operator","value":"/"},
{"type":"Name","value":"li"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Operator","value":"/"},
{"type":"Name","value":"ul"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"\u003c"},
{"type":"Operator","value":"/"},
{"type":"Name","value":"div"},
{"type":"OperatorWord","value":"\u003e"},
{"type":"Text","value":"\n "},
{"type":"OperatorWord","value":"}"},
{"type":"Text","value":"\n"},
{"type":"OperatorWord","value":"}"}
]