mirror of
https://github.com/pdemian/human2regex.git
synced 2025-05-16 04:20:35 -07:00
Fixed bug and reduced image size
This commit is contained in:
parent
bb0f662d1e
commit
ffbd0d72b1
6
docs/bundle.min.js
vendored
6
docs/bundle.min.js
vendored
File diff suppressed because one or more lines are too long
BIN
docs/favicon.png
BIN
docs/favicon.png
Binary file not shown.
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 11 KiB |
@ -448,7 +448,20 @@ export class MatchStatementCST extends StatementCST {
|
||||
|
||||
public toRegex(language: RegexDialect): string {
|
||||
return this.matches.map((x) => {
|
||||
return x.statement.toRegex(language) + (x.optional ? "?" : "");
|
||||
let match_stmt = x.statement.toRegex(language);
|
||||
|
||||
// need to group if optional and ungrouped
|
||||
if (x.optional) {
|
||||
if (!isSingleRegexCharacter(match_stmt)) {
|
||||
// don't re-group a group
|
||||
if (match_stmt[0] !== "(" && match_stmt[match_stmt.length-1] !== ")") {
|
||||
match_stmt = "(?:" + match_stmt + ")";
|
||||
}
|
||||
}
|
||||
match_stmt += "?";
|
||||
}
|
||||
|
||||
return match_stmt;
|
||||
}).join("");
|
||||
}
|
||||
}
|
||||
|
@ -210,7 +210,7 @@ export class Human2RegexLexer {
|
||||
const tok = last(tokens);
|
||||
|
||||
// Do we have an EOL marker at the end?
|
||||
if (tok.tokenType !== EndOfLine) {
|
||||
if (tokens.length > 0 && tok.tokenType !== EndOfLine) {
|
||||
tokens.push(createTokenInstance(EndOfLine, "\n", tok.endOffset ?? NaN, tok.endOffset ?? NaN, tok.startLine ?? NaN, NaN, tok.startColumn ?? NaN, NaN));
|
||||
}
|
||||
|
||||
|
@ -174,7 +174,7 @@ export class CommonError {
|
||||
*/
|
||||
public static fromLexError(error: ILexingError): CommonError {
|
||||
// not really fond of --> and <--
|
||||
const new_msg = error.message.replace(/(-->|<--)/g, "");
|
||||
const new_msg = error.message.replace(/(--?>|<--?)/g, "");
|
||||
|
||||
return new CommonError("Lexer Error", error.line, error.column, error.length, new_msg);
|
||||
}
|
||||
@ -187,7 +187,7 @@ export class CommonError {
|
||||
*/
|
||||
public static fromParseError(error: IRecognitionException): CommonError {
|
||||
// not really fond of --> and <--
|
||||
const new_msg = error.name + " - " + error.message.replace(/(-->|<--)/g, "");
|
||||
const new_msg = error.name + " - " + error.message.replace(/(--?>|<--?)/g, "");
|
||||
|
||||
return new CommonError("Parser Error", error.token.startLine ?? NaN, error.token.startColumn ?? NaN, error.token.endOffset ?? NaN - error.token.startOffset, new_msg);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user