| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sed is a stream editing scripting language forming part of the POSIX
standard. This means that sed cn be found as part of any POSIX compliant
OS such as Linux, MacOS, and the BSDs. This lexer supports the complete
POSIX standard for sed as well as various GNU extensions.
The names 'gsed' and 'ssed' may sometimes be used as part of a file
extension to refer specifically to GNU sed or Super Sed, two popular
implementations of sed.
The sed language is rather simple, here is a quick overview:
- Comments begin with a '#' and continue to the end of the line.
- Commands can be prepended with a range that selects lines. This can be
either a number ([0-9]+), a '$', or a regular expression. Regular
expressions can either be enclosed in '/' such as /regex/ or they can
be exclosed in any other character however the opening delimiter must
be escaped, for example: \@regex@.
- Some commands such as 'w', 'r', and 'b' take a string as a parameter,
this string extends either to the next ';' or newline.
- Some commands such as 'a' can take multiline strings.
- Commands can be grouped with braces ('{' and '}').
- The 'y' command takes two strings as parameters, seperated by any
delimiter ('y/abc/123/' or 'y|abc|123|')
- The 's' command is like the 'y' command but the fist parameter is a
regular expression. Additionally it takes an optional 3rd parameter
which are a sequence of flags ('s|regex|replace|flags').
I chose to add support for GNU sed extensions as it is by far the most
used implementation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pyupgrade is a tool to automatically upgrade syntax for newer versions
of the Python language.
The project has been Python 3 only since
35544e2fc6eed0ce4a27ec7285aac71ff0ddc473, allowing for several cleanups:
- Remove unnecessary "-*- coding: utf-8 -*-" cookie. Python 3 reads all
source files as utf-8 by default.
- Replace IOError/EnvironmentError with OSError. Python 3 unified these
exceptions. The old names are aliases only.
- Use the Python 3 shorter super() syntax.
- Remove "utf8" argument form encode/decode. In Python 3, this value is
the default.
- Remove "r" from open() calls. In Python 3, this value is the default.
- Remove u prefix from Unicode strings. In Python 3, all strings are
Unicode.
- Replace io.open() with builtin open(). In Python 3, these functions
are functionally equivalent.
Co-authored-by: Matthäus G. Chajdas <Anteru@users.noreply.github.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
performance, avoiding slow back-tracking
|
| |
|
| |
|
|
This introduces support for some missing features to the Handlebars lexer:
Partials and path segments. Partials mostly appeared to work before, but the
`>` in `{{> ... }}` would appear as a syntax error, as could other
components of the partial. This change introduces support for:
* Standard partials: `{{> partialName}}`
* Partials with parameters: `{{> partialName varname="value"}}`
* Ddynamic partials: `{{> (partialFunc)}}`
* Ddynamic partials with lookups: `{{> (lookup ../path "partialName")}}`
* Partial blocks: `{{> @partial-block}}`
* Inline partials: `{{#*inline}}..{{/inline}}`
It also introduces support for path segments, which can reference content in
the current context or in a parent context. For instance, `this.name`,
`this/name`, `./name`, `../name`, `this/name`, etc. These are all now tracked
as variables.
|