An Erlang lexer and syntax highlighter in Gleam
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Lex punctuation and operators

+44
+44
src/pearl.gleam
··· 80 80 maybe_token(lexer, token.Comment(contents), !lexer.ignore_comments) 81 81 } 82 82 83 + "::" <> source -> #(advance(lexer, source), token.DoubleColon) 84 + ":=" <> source -> #(advance(lexer, source), token.ColonEqual) 85 + ":" <> source -> #(advance(lexer, source), token.Colon) 86 + "..." <> source -> #(advance(lexer, source), token.TripleDot) 87 + ".." <> source -> #(advance(lexer, source), token.DoubleDot) 88 + 89 + "(" <> source -> #(advance(lexer, source), token.LeftParen) 90 + ")" <> source -> #(advance(lexer, source), token.RightParen) 91 + "{" <> source -> #(advance(lexer, source), token.LeftBrace) 92 + "}" <> source -> #(advance(lexer, source), token.RightBrace) 93 + "[" <> source -> #(advance(lexer, source), token.LeftSquare) 94 + "]" <> source -> #(advance(lexer, source), token.RightSquare) 95 + 96 + "," <> source -> #(advance(lexer, source), token.Comma) 97 + ";" <> source -> #(advance(lexer, source), token.Semicolon) 98 + "." <> source -> #(advance(lexer, source), token.Dot) 99 + "->" <> source -> #(advance(lexer, source), token.MinusGreater) 100 + "<<" <> source -> #(advance(lexer, source), token.DoubleLess) 101 + ">>" <> source -> #(advance(lexer, source), token.DoubleGreater) 102 + "#" <> source -> #(advance(lexer, source), token.Hash) 103 + "||" <> source -> #(advance(lexer, source), token.DoublePipe) 104 + "=>" <> source -> #(advance(lexer, source), token.EqualGreater) 105 + "<-" <> source -> #(advance(lexer, source), token.LessMinus) 106 + "<=" <> source -> #(advance(lexer, source), token.LessEqual) 107 + "|" <> source -> #(advance(lexer, source), token.Pipe) 108 + 109 + "++" <> source -> #(advance(lexer, source), token.DoublePlus) 110 + "--" <> source -> #(advance(lexer, source), token.DoubleMinus) 111 + "==" <> source -> #(advance(lexer, source), token.DoubleEqual) 112 + "/=" <> source -> #(advance(lexer, source), token.SlashEqual) 113 + "=<" <> source -> #(advance(lexer, source), token.EqualLess) 114 + "<" <> source -> #(advance(lexer, source), token.Less) 115 + ">=" <> source -> #(advance(lexer, source), token.GreaterEqual) 116 + ">" <> source -> #(advance(lexer, source), token.Greater) 117 + "=:=" <> source -> #(advance(lexer, source), token.EqualColonEqual) 118 + "=/=" <> source -> #(advance(lexer, source), token.EqualSlashEqual) 119 + "+" <> source -> #(advance(lexer, source), token.Plus) 120 + "-" <> source -> #(advance(lexer, source), token.Minus) 121 + "*" <> source -> #(advance(lexer, source), token.Star) 122 + "/" <> source -> #(advance(lexer, source), token.Slash) 123 + "?=" <> source -> #(advance(lexer, source), token.QuestionEqual) 124 + "!" <> source -> #(advance(lexer, source), token.Bang) 125 + "=" <> source -> #(advance(lexer, source), token.Equal) 126 + 83 127 _ -> 84 128 case string.pop_grapheme(lexer.source) { 85 129 Error(_) -> #(lexer, token.EndOfFile)