From 4309ddf0709ce04cf6346bd4ed039877a3e06379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= Date: Thu, 16 Jan 2025 11:46:49 +0100 Subject: [PATCH] standardize definition of lexer and lex, remove whitespace definition Partially fixes: https://github.com/orbitalquark/scintillua/issues/76 --- lexers/actionscript.lua | 7 ++----- lexers/ada.lua | 7 ++----- lexers/antlr.lua | 7 ++----- lexers/apdl.lua | 5 +---- lexers/apl.lua | 7 ++----- lexers/applescript.lua | 7 ++----- lexers/batch.lua | 5 +---- lexers/boo.lua | 7 ++----- lexers/caml.lua | 7 ++----- lexers/clojure.lua | 7 ++----- lexers/coffeescript.lua | 5 +---- lexers/context.lua | 7 ++----- lexers/crystal.lua | 7 ++----- lexers/csharp.lua | 7 ++----- lexers/dart.lua | 7 ++----- lexers/dot.lua | 7 ++----- lexers/eiffel.lua | 7 ++----- lexers/elixir.lua | 5 +---- lexers/elm.lua | 5 +---- lexers/erlang.lua | 7 ++----- lexers/fantom.lua | 8 ++------ lexers/faust.lua | 7 ++----- lexers/fennel.lua | 5 +---- lexers/fish.lua | 7 ++----- lexers/forth.lua | 7 ++----- lexers/fortran.lua | 7 ++----- lexers/fsharp.lua | 5 +---- lexers/gap.lua | 7 ++----- lexers/gettext.lua | 7 ++----- lexers/gherkin.lua | 5 +---- lexers/gleam.lua | 8 ++------ lexers/groovy.lua | 7 ++----- lexers/icon.lua | 7 ++----- lexers/idl.lua | 7 ++----- lexers/inform.lua | 7 ++----- lexers/ini.lua | 7 ++----- lexers/io_lang.lua | 7 ++----- lexers/java.lua | 2 +- lexers/jq.lua | 7 ++----- lexers/julia.lua | 7 ++----- lexers/ledger.lua | 5 +---- lexers/less.lua | 2 +- lexers/lilypond.lua | 7 ++----- lexers/lisp.lua | 7 ++----- lexers/logtalk.lua | 5 +---- lexers/mediawiki.lua | 4 ++-- lexers/moonscript.lua | 5 +---- lexers/myrddin.lua | 7 ++----- lexers/nemerle.lua | 7 ++----- lexers/networkd.lua | 5 +---- lexers/nim.lua | 5 +---- lexers/nsis.lua | 7 ++----- lexers/objective_c.lua | 5 +---- lexers/pascal.lua | 7 ++----- lexers/pike.lua | 7 ++----- lexers/pkgbuild.lua | 7 ++----- lexers/pony.lua | 8 ++------ lexers/powershell.lua | 7 ++----- lexers/prolog.lua | 7 ++----- lexers/protobuf.lua | 7 ++----- lexers/ps.lua | 7 ++----- lexers/pure.lua | 7 ++----- lexers/r.lua | 7 ++----- lexers/rc.lua | 7 ++----- lexers/reason.lua | 7 ++----- lexers/rebol.lua | 7 ++----- lexers/rest.lua | 7 ++----- lexers/rexx.lua | 7 ++----- lexers/routeros.lua | 7 ++----- lexers/rpmspec.lua | 7 ++----- lexers/scala.lua | 8 ++------ lexers/scheme.lua | 7 ++----- lexers/smalltalk.lua | 7 ++----- lexers/sml.lua | 8 ++------ lexers/snobol4.lua | 5 +---- lexers/spin.lua | 7 ++----- lexers/sql.lua | 7 ++----- lexers/systemd.lua | 5 +---- lexers/tcl.lua | 7 ++----- lexers/text.lua | 6 ++---- lexers/txt2tags.lua | 8 ++------ lexers/vala.lua | 7 ++----- lexers/vcard.lua | 7 ++----- lexers/verilog.lua | 7 ++----- lexers/vhdl.lua | 7 ++----- lexers/xs.lua | 7 ++----- lexers/xtend.lua | 8 ++------ lexers/zig.lua | 7 ++----- 88 files changed, 158 insertions(+), 419 deletions(-) diff --git a/lexers/actionscript.lua b/lexers/actionscript.lua index 1c026d59..146de642 100644 --- a/lexers/actionscript.lua +++ b/lexers/actionscript.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Actionscript LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('actionscript') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/ada.lua b/lexers/ada.lua index 77f83024..64d7793b 100644 --- a/lexers/ada.lua +++ b/lexers/ada.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Ada LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('ada') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ diff --git a/lexers/antlr.lua b/lexers/antlr.lua index 345f82df..229075e0 100644 --- a/lexers/antlr.lua +++ b/lexers/antlr.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- ANTLR LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('antlr') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/apdl.lua b/lexers/apdl.lua index c01726b0..d23c8104 100644 --- a/lexers/apdl.lua +++ b/lexers/apdl.lua @@ -1,15 +1,12 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- APDL LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('apdl', {case_insensitive_fold_points = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ '*abbr', '*abb', '*afun', '*afu', '*ask', '*cfclos', '*cfc', '*cfopen', '*cfo', '*cfwrite', diff --git a/lexers/apl.lua b/lexers/apl.lua index 8b20b35e..7747d0f7 100644 --- a/lexers/apl.lua +++ b/lexers/apl.lua @@ -1,14 +1,11 @@ -- Copyright 2015-2025 David B. Lamkins . See LICENSE. -- APL LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('apl') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Comments. lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol(P('⍝') + '#'))) diff --git a/lexers/applescript.lua b/lexers/applescript.lua index a37445b3..35f6f033 100644 --- a/lexers/applescript.lua +++ b/lexers/applescript.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Applescript LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('applescript') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ diff --git a/lexers/batch.lua b/lexers/batch.lua index 7790bed0..5533bf53 100644 --- a/lexers/batch.lua +++ b/lexers/batch.lua @@ -1,15 +1,12 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Batch LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('batch', {case_insensitive_fold_points = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ 'cd', 'chdir', 'md', 'mkdir', 'cls', 'for', 'if', 'echo', 'echo.', 'move', 'copy', 'ren', 'del', diff --git a/lexers/boo.lua b/lexers/boo.lua index 6d3aee07..505574c9 100644 --- a/lexers/boo.lua +++ b/lexers/boo.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Boo LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('boo') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/caml.lua b/lexers/caml.lua index 54bd2adf..918e3fe1 100644 --- a/lexers/caml.lua +++ b/lexers/caml.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- OCaml LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('caml') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/clojure.lua b/lexers/clojure.lua index e9c82459..90265046 100644 --- a/lexers/clojure.lua +++ b/lexers/clojure.lua @@ -2,14 +2,11 @@ -- Clojure LPeg lexer. -- Contributed by Christos Chatzifountas. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('clojure') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/coffeescript.lua b/lexers/coffeescript.lua index b6c47baa..ae6e54ee 100644 --- a/lexers/coffeescript.lua +++ b/lexers/coffeescript.lua @@ -1,15 +1,12 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- CoffeeScript LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local word_match = lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('coffeescript', {fold_by_indentation = true}) --- Whitespace. -lex:add_rule('whitespace', lex:tag(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', lex:tag(lexer.KEYWORD, word_match{ 'all', 'and', 'bind', 'break', 'by', 'case', 'catch', 'class', 'const', 'continue', 'default', diff --git a/lexers/context.lua b/lexers/context.lua index 9962db06..67a26b8d 100644 --- a/lexers/context.lua +++ b/lexers/context.lua @@ -1,19 +1,16 @@ -- Copyright 2006-2025 Robert Gieseke, Lars Otter. See LICENSE. -- ConTeXt LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('context') +local lex = lexer.new(...) -- TeX and ConTeXt mkiv environment definitions. local beginend = (P('begin') + 'end') local startstop = (P('start') + 'stop') --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Comments. lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('%'))) diff --git a/lexers/crystal.lua b/lexers/crystal.lua index 47d12aef..a08c553c 100644 --- a/lexers/crystal.lua +++ b/lexers/crystal.lua @@ -2,14 +2,11 @@ -- Copyright 2017 Michel Martens. -- Crystal LPeg lexer (based on Ruby). -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('crystal') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/csharp.lua b/lexers/csharp.lua index 21bb9e0f..6d92cb68 100644 --- a/lexers/csharp.lua +++ b/lexers/csharp.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- C# LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('csharp') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/dart.lua b/lexers/dart.lua index 2634202a..027a8f89 100644 --- a/lexers/dart.lua +++ b/lexers/dart.lua @@ -2,14 +2,11 @@ -- Dart LPeg lexer. -- Written by Brian Schott (@Hackerpilot on Github). -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('dart') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/dot.lua b/lexers/dot.lua index 13fa9b1a..6ee14864 100644 --- a/lexers/dot.lua +++ b/lexers/dot.lua @@ -2,14 +2,11 @@ -- Dot LPeg lexer. -- Based off of lexer code by Mitchell. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('dot') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/eiffel.lua b/lexers/eiffel.lua index 49f2cdf5..f219e364 100644 --- a/lexers/eiffel.lua +++ b/lexers/eiffel.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Eiffel LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('eiffel') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/elixir.lua b/lexers/elixir.lua index 45d764ab..cbae13b4 100644 --- a/lexers/elixir.lua +++ b/lexers/elixir.lua @@ -2,15 +2,12 @@ -- Contributed by Richard Philips. -- Elixir LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local B, P, S = lpeg.B, lpeg.P, lpeg.S local lex = lexer.new('elixir', {fold_by_indentation = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Sigils. local sigil11 = '~' * S('CRSW') * lexer.range('<', '>') local sigil12 = '~' * S('CRSW') * lexer.range('{', '}') diff --git a/lexers/elm.lua b/lexers/elm.lua index 0f70bde9..3a748a43 100644 --- a/lexers/elm.lua +++ b/lexers/elm.lua @@ -2,15 +2,12 @@ -- Elm LPeg lexer -- Adapted from Haskell LPeg lexer by Karl Schultheisz. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('elm', {fold_by_indentation = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match( 'if then else case of let in module import as exposing type alias port'))) diff --git a/lexers/erlang.lua b/lexers/erlang.lua index b85b2a9b..db716899 100644 --- a/lexers/erlang.lua +++ b/lexers/erlang.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Erlang LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('erlang') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/fantom.lua b/lexers/fantom.lua index c169ff91..70ac8f6e 100644 --- a/lexers/fantom.lua +++ b/lexers/fantom.lua @@ -2,15 +2,11 @@ -- Fantom LPeg lexer. -- Based on Java LPeg lexer by Mitchell and Vim's Fantom syntax. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('fantom') - --- Whitespace. -local ws = token(lexer.WHITESPACE, lexer.space^1) -lex:add_rule('whitespace', ws) +local lex = lexer.new(...) -- Classes. local type = token(lexer.TYPE, lexer.word) diff --git a/lexers/faust.lua b/lexers/faust.lua index 3273d9fc..a2ed02e5 100644 --- a/lexers/faust.lua +++ b/lexers/faust.lua @@ -1,14 +1,11 @@ -- Copyright 2015-2025 David B. Lamkins . See LICENSE. -- Faust LPeg lexer, see http://faust.grame.fr/ -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('faust') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/fennel.lua b/lexers/fennel.lua index 0537de45..a9093eef 100644 --- a/lexers/fennel.lua +++ b/lexers/fennel.lua @@ -2,15 +2,12 @@ -- Fennel LPeg lexer. -- Contributed by Momohime Honda. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('fennel', {inherit = lexer.load('lua')}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:modify_rule('keyword', token(lexer.KEYWORD, word_match{ '#', '%', '*', '+', '-', '->>', '->', '-?>>', '-?>', '..', '.', '//', '/', ':', '<=', '<', '=', diff --git a/lexers/fish.lua b/lexers/fish.lua index a9c2a5b2..e440c275 100644 --- a/lexers/fish.lua +++ b/lexers/fish.lua @@ -1,14 +1,11 @@ -- Copyright 2015-2025 Jason Schindler. See LICENSE. -- Fish (http://fishshell.com/) script LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('fish') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/forth.lua b/lexers/forth.lua index 54981746..2c8bd6d2 100644 --- a/lexers/forth.lua +++ b/lexers/forth.lua @@ -2,14 +2,11 @@ -- Forth LPeg lexer. -- Contributions from Joseph Eib. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('forth') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Strings. local c_str = 'c' * lexer.range('"', true, false) diff --git a/lexers/fortran.lua b/lexers/fortran.lua index 0605be09..d1ff1f92 100644 --- a/lexers/fortran.lua +++ b/lexers/fortran.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Fortran LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('fortran') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Comments. local line_comment = lexer.to_eol(lexer.starts_line(S('CcDd!*')) + '!') diff --git a/lexers/fsharp.lua b/lexers/fsharp.lua index 7dd842ac..71c4e689 100644 --- a/lexers/fsharp.lua +++ b/lexers/fsharp.lua @@ -1,15 +1,12 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- F# LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('fsharp', {fold_by_indentation = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ 'abstract', 'and', 'as', 'assert', 'asr', 'begin', 'class', 'default', 'delegate', 'do', 'done', diff --git a/lexers/gap.lua b/lexers/gap.lua index 974156cb..efa6a16a 100644 --- a/lexers/gap.lua +++ b/lexers/gap.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Gap LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('gap') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/gettext.lua b/lexers/gettext.lua index f532eb33..8b53c4fd 100644 --- a/lexers/gettext.lua +++ b/lexers/gettext.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Gettext LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('gettext') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match( diff --git a/lexers/gherkin.lua b/lexers/gherkin.lua index 022227fb..9802010c 100644 --- a/lexers/gherkin.lua +++ b/lexers/gherkin.lua @@ -1,15 +1,12 @@ -- Copyright 2015-2025 Jason Schindler. See LICENSE. -- Gherkin (https://github.com/cucumber/cucumber/wiki/Gherkin) LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('gherkin', {fold_by_indentation = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match( 'And Background But Examples Feature Given Outline Scenario Scenarios Then When'))) diff --git a/lexers/gleam.lua b/lexers/gleam.lua index 76dbe985..a09180e4 100644 --- a/lexers/gleam.lua +++ b/lexers/gleam.lua @@ -3,17 +3,13 @@ -- https://gleam.run/ -- Contributed by Tynan Beatty -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local KEY, OP = lexer.KEYWORD, lexer.OPERATOR -local lex = lexer.new('gleam') - --- Whitespace. -local gleam_ws = token(lexer.WHITESPACE, lexer.space^1) -lex:add_rule('whitespace', gleam_ws) +local lex = lexer.new(...) -- Types. local typ_tok = token(lexer.TYPE, lexer.upper * lexer.alnum^0) diff --git a/lexers/groovy.lua b/lexers/groovy.lua index ddd7c787..3513d0c5 100644 --- a/lexers/groovy.lua +++ b/lexers/groovy.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Groovy LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('groovy') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/icon.lua b/lexers/icon.lua index 35c21cb6..5b111487 100644 --- a/lexers/icon.lua +++ b/lexers/icon.lua @@ -3,14 +3,11 @@ -- http://www.cs.arizona.edu/icon -- Contributed by Carl Sturtivant. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('icon') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/idl.lua b/lexers/idl.lua index 67814f8d..e0e21b52 100644 --- a/lexers/idl.lua +++ b/lexers/idl.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- IDL LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('idl') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/inform.lua b/lexers/inform.lua index 5814b18d..d21089b3 100644 --- a/lexers/inform.lua +++ b/lexers/inform.lua @@ -2,14 +2,11 @@ -- Inform 6 LPeg lexer for Scintillua. -- JMS 2010-04-25. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('inform') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/ini.lua b/lexers/ini.lua index 31fc4bbf..33ac9e42 100644 --- a/lexers/ini.lua +++ b/lexers/ini.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Ini LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('ini') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match('true false on off yes no'))) diff --git a/lexers/io_lang.lua b/lexers/io_lang.lua index b0c0c625..4910cee3 100644 --- a/lexers/io_lang.lua +++ b/lexers/io_lang.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Io LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('io_lang') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/java.lua b/lexers/java.lua index 2b1fc00f..56f52614 100644 --- a/lexers/java.lua +++ b/lexers/java.lua @@ -2,7 +2,7 @@ -- Java LPeg lexer. -- Modified by Brian Schott. -local lexer = require('lexer') +local lexer = lexer local P, S = lpeg.P, lpeg.S local lex = lexer.new(...) diff --git a/lexers/jq.lua b/lexers/jq.lua index 5ca1a584..9a88daa6 100644 --- a/lexers/jq.lua +++ b/lexers/jq.lua @@ -2,14 +2,11 @@ -- jq 1.6 Lua lexer -- https://stedolan.github.io/jq/wiki -- Anonymously contributed. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('jq') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/julia.lua b/lexers/julia.lua index ebbcc6a1..dfb71b2b 100644 --- a/lexers/julia.lua +++ b/lexers/julia.lua @@ -1,14 +1,11 @@ -- Copyright 2020-2025 Tobias Frilling. See LICENSE. -- Julia lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local B, P, S = lpeg.B, lpeg.P, lpeg.S -local lex = lexer.new('julia') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) local id = lexer.word * P('!')^0 diff --git a/lexers/ledger.lua b/lexers/ledger.lua index 423693d3..c667ebf6 100644 --- a/lexers/ledger.lua +++ b/lexers/ledger.lua @@ -1,7 +1,7 @@ -- Copyright 2015-2025 Charles Lehner. See LICENSE. -- ledger journal LPeg lexer, see http://www.ledger-cli.org/ -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S @@ -18,9 +18,6 @@ lex:add_rule('amount', token(lexer.NUMBER, delim * (1 - S(';\r\n'))^1)) -- Comments. lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol(S(';#')))) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Strings. local sq_str = lexer.range("'") local dq_str = lexer.range('"') diff --git a/lexers/less.lua b/lexers/less.lua index 7cba56af..4cdd6eff 100644 --- a/lexers/less.lua +++ b/lexers/less.lua @@ -2,7 +2,7 @@ -- Less CSS LPeg lexer. -- http://lesscss.org -local lexer = require('lexer') +local lexer = lexer local token = lexer.token local S = lpeg.S diff --git a/lexers/lilypond.lua b/lexers/lilypond.lua index 3f80edff..198f64b0 100644 --- a/lexers/lilypond.lua +++ b/lexers/lilypond.lua @@ -2,14 +2,11 @@ -- Lilypond LPeg lexer. -- TODO Embed Scheme; Notes?, Numbers? -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('lilypond') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords, commands. lex:add_rule('keyword', token(lexer.KEYWORD, '\\' * lexer.word)) diff --git a/lexers/lisp.lua b/lexers/lisp.lua index fa4c0344..c8bfcd0c 100644 --- a/lexers/lisp.lua +++ b/lexers/lisp.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Lisp LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('lisp') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/logtalk.lua b/lexers/logtalk.lua index ffcc8ebb..f09fdc20 100644 --- a/lexers/logtalk.lua +++ b/lexers/logtalk.lua @@ -1,7 +1,7 @@ -- Copyright © 2017-2025 Michael T. Richter . See LICENSE. -- Logtalk LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S @@ -20,9 +20,6 @@ lex:modify_rule('directive', token(lexer.PREPROCESSOR, word_match(directives)) ) + lex:get_rule('directive')) --- Whitespace. -lex:modify_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - local zero_arity_keywords = { -- extracted from test document in logtalk distribution 'comment', 'argnames', 'arguments', 'author', 'version', 'date', 'parameters', 'parnames', diff --git a/lexers/mediawiki.lua b/lexers/mediawiki.lua index a4f6d700..aee0d58d 100644 --- a/lexers/mediawiki.lua +++ b/lexers/mediawiki.lua @@ -2,11 +2,11 @@ -- MediaWiki LPeg lexer. -- Contributed by Alexander Misel. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S, B = lpeg.P, lpeg.S, lpeg.B -local lex = lexer.new('mediawiki') +local lex = lexer.new(...) -- Comments. lex:add_rule('comment', token(lexer.COMMENT, lexer.range(''))) diff --git a/lexers/moonscript.lua b/lexers/moonscript.lua index 498e55b8..ea5d8910 100644 --- a/lexers/moonscript.lua +++ b/lexers/moonscript.lua @@ -1,15 +1,12 @@ -- Copyright 2016-2025 Alejandro Baez (https://keybase.io/baez). See LICENSE. -- Moonscript LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('moonscript', {fold_by_indentation = true}) --- Whitespace. -lex:add_rule('whitspace', token(lexer.WHITESPACE, lexer.space^1)) - -- Table keys. lex:add_rule('tbl_key', token('tbl_key', lexer.word * ':' + ':' * lexer.word)) lex:add_style('tbl_key', lexer.styles.regex) diff --git a/lexers/myrddin.lua b/lexers/myrddin.lua index b969b9ca..f503c9fc 100644 --- a/lexers/myrddin.lua +++ b/lexers/myrddin.lua @@ -1,14 +1,11 @@ -- Copyright 2017-2025 Michael Forney. See LICENSE -- Myrddin LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('myrddin') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/nemerle.lua b/lexers/nemerle.lua index 41d2b0e1..c0f0cb5c 100644 --- a/lexers/nemerle.lua +++ b/lexers/nemerle.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Nemerle LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('nemerle') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/networkd.lua b/lexers/networkd.lua index 19f982c9..c303a0ed 100644 --- a/lexers/networkd.lua +++ b/lexers/networkd.lua @@ -1,15 +1,12 @@ -- Copyright 2016-2025 Christian Hesse. See LICENSE. -- systemd networkd file LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('networkd', {lex_by_line = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ -- Boolean values. diff --git a/lexers/nim.lua b/lexers/nim.lua index 58e3ed36..8d3c9850 100644 --- a/lexers/nim.lua +++ b/lexers/nim.lua @@ -1,15 +1,12 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Nim LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('nim', {fold_by_indentation = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ 'addr', 'and', 'as', 'asm', 'atomic', 'bind', 'block', 'break', 'case', 'cast', 'const', diff --git a/lexers/nsis.lua b/lexers/nsis.lua index d1805357..ae033419 100644 --- a/lexers/nsis.lua +++ b/lexers/nsis.lua @@ -2,14 +2,11 @@ -- NSIS LPeg lexer -- Based on NSIS 2.46 docs: http://nsis.sourceforge.net/Docs/. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('nsis') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Comments (4.1). local line_comment = lexer.to_eol(S(';#')) diff --git a/lexers/objective_c.lua b/lexers/objective_c.lua index d4984105..4cbe4abd 100644 --- a/lexers/objective_c.lua +++ b/lexers/objective_c.lua @@ -1,15 +1,12 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Objective C LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('objective_c') --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ -- From C. diff --git a/lexers/pascal.lua b/lexers/pascal.lua index b0c9c8a4..0d90d4af 100644 --- a/lexers/pascal.lua +++ b/lexers/pascal.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Pascal LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('pascal') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ diff --git a/lexers/pike.lua b/lexers/pike.lua index 73cd2c54..aa63d64f 100644 --- a/lexers/pike.lua +++ b/lexers/pike.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Pike LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('pike') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/pkgbuild.lua b/lexers/pkgbuild.lua index c154f1cb..778a3d01 100644 --- a/lexers/pkgbuild.lua +++ b/lexers/pkgbuild.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 gwash. See LICENSE. -- Archlinux PKGBUILD LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('pkgbuild') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Comments. lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('#'))) diff --git a/lexers/pony.lua b/lexers/pony.lua index ad265e25..12b32c85 100644 --- a/lexers/pony.lua +++ b/lexers/pony.lua @@ -1,15 +1,11 @@ -- Copyright 2017-2025 Murray Calavera. See LICENSE. -- Pony LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('pony') - --- Whitespace. -local ws = token(lexer.WHITESPACE, lexer.space^1) -lex:add_rule('whitespace', ws) +local lex = lexer.new(...) -- Capabilities. local capability = token(lexer.LABEL, word_match('box iso ref tag trn val')) diff --git a/lexers/powershell.lua b/lexers/powershell.lua index e9e88b24..b212d36e 100644 --- a/lexers/powershell.lua +++ b/lexers/powershell.lua @@ -2,14 +2,11 @@ -- PowerShell LPeg lexer. -- Contributed by Jeff Stone. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('powershell') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Comments. lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('#'))) diff --git a/lexers/prolog.lua b/lexers/prolog.lua index f29a1439..79c28b10 100644 --- a/lexers/prolog.lua +++ b/lexers/prolog.lua @@ -23,12 +23,12 @@ which override operators. ]] -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('prolog') +local lex = lexer.new(...) local dialect = lexer.property['prolog.dialect'] if dialect ~= 'gprolog' and dialog ~= 'swipl' then dialect = 'iso' end @@ -73,9 +73,6 @@ lex:add_rule('directive', token(lexer.WHITESPACE, lexer.starts_line(S(' \t'))^0) * token(lexer.OPERATOR, ':-') * token(lexer.WHITESPACE, S(' \t')^0) * token(lexer.PREPROCESSOR, word_match(directives[dialect]))) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. local zero_arity_keywords = {} zero_arity_keywords.iso = [[ diff --git a/lexers/protobuf.lua b/lexers/protobuf.lua index f182cb57..04ebe36c 100644 --- a/lexers/protobuf.lua +++ b/lexers/protobuf.lua @@ -2,14 +2,11 @@ -- Protocol Buffer IDL LPeg lexer. -- -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('protobuf') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/ps.lua b/lexers/ps.lua index cb17f2d6..e9cbe7d1 100644 --- a/lexers/ps.lua +++ b/lexers/ps.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Postscript LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('ps') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/pure.lua b/lexers/pure.lua index 0c5492b4..61cb3941 100644 --- a/lexers/pure.lua +++ b/lexers/pure.lua @@ -1,14 +1,11 @@ -- Copyright 2015-2025 David B. Lamkins . See LICENSE. -- pure LPeg lexer, see http://purelang.bitbucket.org/ -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('pure') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/r.lua b/lexers/r.lua index bda1eb17..0327d993 100644 --- a/lexers/r.lua +++ b/lexers/r.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- R LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('r') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/rc.lua b/lexers/rc.lua index db8313d2..21b3650a 100644 --- a/lexers/rc.lua +++ b/lexers/rc.lua @@ -1,14 +1,11 @@ -- Copyright 2017-2025 Michael Forney. See LICENSE. -- rc LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('rc') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/reason.lua b/lexers/reason.lua index e26b18fc..8ca890ff 100644 --- a/lexers/reason.lua +++ b/lexers/reason.lua @@ -1,14 +1,11 @@ -- Copyright 2018-2025 Hugo O. Rivera. See LICENSE. -- Reason (https://reasonml.github.io/) LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('reason') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/rebol.lua b/lexers/rebol.lua index 2770a412..58d95b41 100644 --- a/lexers/rebol.lua +++ b/lexers/rebol.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Rebol LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('rebol') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Comments. local line_comment = lexer.to_eol(';') diff --git a/lexers/rest.lua b/lexers/rest.lua index 74337e72..0507f782 100644 --- a/lexers/rest.lua +++ b/lexers/rest.lua @@ -1,11 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- reStructuredText LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match, starts_line = lexer.token, lexer.word_match, lexer.starts_line local P, S = lpeg.P, lpeg.S -local lex = lexer.new('rest') +local lex = lexer.new(...) -- Literal block. local block = '::' * (lexer.newline + -1) * function(input, index) @@ -140,9 +140,6 @@ lex:add_rule('title', token(lexer.HEADING, overline + underline)) -- Line block. lex:add_rule('line_block_char', token(lexer.OPERATOR, starts_line(any_indent * '|'))) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, S(' \t')^1 + lexer.newline^1)) - -- Inline markup. local strong = token(lexer.BOLD, lexer.range('**')) local em = token(lexer.ITALIC, lexer.range('*')) diff --git a/lexers/rexx.lua b/lexers/rexx.lua index 2b9bb204..7f5710b5 100644 --- a/lexers/rexx.lua +++ b/lexers/rexx.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Rexx LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('rexx') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ diff --git a/lexers/routeros.lua b/lexers/routeros.lua index 4c8dbb44..57b98986 100644 --- a/lexers/routeros.lua +++ b/lexers/routeros.lua @@ -1,14 +1,11 @@ -- Copyright 2020-2025 Christian Hesse. See LICENSE. -- Mikrotik RouterOS script LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('routeros') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/rpmspec.lua b/lexers/rpmspec.lua index 4eec9c86..ffa67f43 100644 --- a/lexers/rpmspec.lua +++ b/lexers/rpmspec.lua @@ -1,13 +1,10 @@ -- Copyright 2022-2025 Matej Cepl mcepl.att.cepl.eu. See LICENSE. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('rpmspec') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Comments. lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('#'))) diff --git a/lexers/scala.lua b/lexers/scala.lua index cbb9889e..5a5481dc 100644 --- a/lexers/scala.lua +++ b/lexers/scala.lua @@ -1,15 +1,11 @@ -- Copyright 2006-2025 JMS. See LICENSE. -- Scala LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('scala') - --- Whitespace. -local ws = token(lexer.WHITESPACE, lexer.space^1) -lex:add_rule('whitespace', ws) +local lex = lexer.new(...) -- Classes. lex:add_rule('class', token(lexer.KEYWORD, 'class') * ws^1 * token(lexer.CLASS, lexer.word)) diff --git a/lexers/scheme.lua b/lexers/scheme.lua index e61be427..a6e9e17f 100644 --- a/lexers/scheme.lua +++ b/lexers/scheme.lua @@ -2,14 +2,11 @@ -- Scheme LPeg lexer. -- Contributions by Murray Calavera. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('scheme') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/smalltalk.lua b/lexers/smalltalk.lua index 2f858d60..09e45767 100644 --- a/lexers/smalltalk.lua +++ b/lexers/smalltalk.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Smalltalk LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('smalltalk') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match( diff --git a/lexers/sml.lua b/lexers/sml.lua index 4cb5e5ae..96fe809e 100644 --- a/lexers/sml.lua +++ b/lexers/sml.lua @@ -1,15 +1,11 @@ -- Copyright 2017-2025 Murray Calavera. See LICENSE. -- Standard ML LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('sml') - --- Whitespace. -local ws = token(lexer.WHITESPACE, lexer.space^1) -lex:add_rule('whitespace', ws) +local lex = lexer.new(...) -- Structures. local id = (lexer.alnum + "'" + '_')^0 diff --git a/lexers/snobol4.lua b/lexers/snobol4.lua index d8a56d6f..9eb2ebd5 100644 --- a/lexers/snobol4.lua +++ b/lexers/snobol4.lua @@ -2,15 +2,12 @@ -- SNOBOL4 lexer. -- This lexer works with classic SNOBOL4 as well as the CSNOBOL4 extensions. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local B, P, S = lpeg.B, lpeg.P, lpeg.S local lex = lexer.new('snobol4') --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ 'ABORT', 'ARRAY', 'CONTINUE', 'DEFINE', 'END', 'FRETURN', 'INPUT', 'NRETURN', 'OUTPUT', 'PUNCH', diff --git a/lexers/spin.lua b/lexers/spin.lua index d44514c4..d7ed7b2c 100644 --- a/lexers/spin.lua +++ b/lexers/spin.lua @@ -1,14 +1,11 @@ -- Copyright 2017-2025 David B. Lamkins . See LICENSE. -- Spin LPeg lexer, see https://www.parallax.com/microcontrollers/propeller. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, R, S = lpeg.P, lpeg.R, lpeg.S -local lex = lexer.new('spin') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/sql.lua b/lexers/sql.lua index 7bd63aa9..c290f1f6 100644 --- a/lexers/sql.lua +++ b/lexers/sql.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- SQL LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('sql') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match({ diff --git a/lexers/systemd.lua b/lexers/systemd.lua index 9145cd3e..a0ae98c5 100644 --- a/lexers/systemd.lua +++ b/lexers/systemd.lua @@ -1,15 +1,12 @@ -- Copyright 2016-2025 Christian Hesse. See LICENSE. -- systemd unit file LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local lex = lexer.new('systemd', {lex_by_line = true}) --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) - -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ -- Boolean values. diff --git a/lexers/tcl.lua b/lexers/tcl.lua index 83ecd4ae..e176e2bd 100644 --- a/lexers/tcl.lua +++ b/lexers/tcl.lua @@ -3,14 +3,11 @@ -- This lexer follows the TCL dodekalogue (http://wiki.tcl.tk/10259). -- It is based on the previous lexer by Mitchell. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('tcl') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Comment. lex:add_rule('comment', token(lexer.COMMENT, lexer.to_eol('#' * P(function(input, index) diff --git a/lexers/text.lua b/lexers/text.lua index 81f2b35b..9982939e 100644 --- a/lexers/text.lua +++ b/lexers/text.lua @@ -1,11 +1,9 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Text LPeg lexer. -local lexer = require('lexer') +local lexer = lexer -local lex = lexer.new('text') - -lex:add_rule('whitespace', lexer.token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) lex:add_rule('text', lexer.token(lexer.DEFAULT, (1 - lexer.space)^1)) diff --git a/lexers/txt2tags.lua b/lexers/txt2tags.lua index f0343726..b67b4994 100644 --- a/lexers/txt2tags.lua +++ b/lexers/txt2tags.lua @@ -4,15 +4,12 @@ -- [https://txt2tags.org/doc/english/rules.t2t]) -- Contributed by Julien L. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S local nonspace = lexer.any - lexer.space -local lex = lexer.new('txt2tags') - --- Whitespace. -local ws = token(lexer.WHITESPACE, (lexer.space - lexer.newline)^1) +local lex = lexer.new(...) -- Titles local alphanumeric = lexer.alnum + S('_-') @@ -108,7 +105,6 @@ lex:add_rule('link', link) lex:add_rule('line', line) lex:add_rule('header', header) lex:add_rule('comment', comment) -lex:add_rule('whitespace', ws) lex:add_rule('image', image) lex:add_rule('macro', macro) lex:add_rule('inline', inline) diff --git a/lexers/vala.lua b/lexers/vala.lua index f905109c..a15d97f8 100644 --- a/lexers/vala.lua +++ b/lexers/vala.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Vala LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('vala') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/vcard.lua b/lexers/vcard.lua index b5f6d6dd..ac835544 100644 --- a/lexers/vcard.lua +++ b/lexers/vcard.lua @@ -1,14 +1,11 @@ -- Copyright (c) 2015-2025 Piotr Orzechowski [drzewo.org]. See LICENSE. -- vCard 2.1, 3.0 and 4.0 LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('vcard') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Begin vCard, end vCard. lex:add_rule('begin_sequence', token(lexer.KEYWORD, 'BEGIN') * token(lexer.OPERATOR, ':') * diff --git a/lexers/verilog.lua b/lexers/verilog.lua index d850b460..63eaed8a 100644 --- a/lexers/verilog.lua +++ b/lexers/verilog.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- Verilog LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('verilog') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/vhdl.lua b/lexers/vhdl.lua index 4686aea9..9baa6038 100644 --- a/lexers/vhdl.lua +++ b/lexers/vhdl.lua @@ -1,14 +1,11 @@ -- Copyright 2006-2025 Mitchell. See LICENSE. -- VHDL LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('vhdl') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/xs.lua b/lexers/xs.lua index e018643b..c03471c2 100644 --- a/lexers/xs.lua +++ b/lexers/xs.lua @@ -2,14 +2,11 @@ -- xs LPeg lexer. -- Adapted from rc lexer by Michael Forney. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('xs') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{ diff --git a/lexers/xtend.lua b/lexers/xtend.lua index d18dd445..8f1af609 100644 --- a/lexers/xtend.lua +++ b/lexers/xtend.lua @@ -1,15 +1,11 @@ -- Copyright (c) 2014-2025 Piotr Orzechowski [drzewo.org]. See LICENSE. -- Xtend LPeg lexer. -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('xtend') - --- Whitespace. -local ws = token(lexer.WHITESPACE, lexer.space^1) -lex:add_rule('whitespace', ws) +local lex = lexer.new(...) -- Classes. lex:add_rule('class', token(lexer.KEYWORD, 'class') * ws^1 * token(lexer.CLASS, lexer.word)) diff --git a/lexers/zig.lua b/lexers/zig.lua index 695613f8..56cfb54c 100644 --- a/lexers/zig.lua +++ b/lexers/zig.lua @@ -2,14 +2,11 @@ -- Zig LPeg lexer. -- (Based on the C++ LPeg lexer from Mitchell.) -local lexer = require('lexer') +local lexer = lexer local token, word_match = lexer.token, lexer.word_match local P, S = lpeg.P, lpeg.S -local lex = lexer.new('zig') - --- Whitespace. -lex:add_rule('whitespace', token(lexer.WHITESPACE, lexer.space^1)) +local lex = lexer.new(...) -- Keywords. lex:add_rule('keyword', token(lexer.KEYWORD, word_match{