| // compile | |
| // Copyright 2025 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package p | |
| func MatchLog(input string) bool { | |
| pos := 0 | |
| n := len(input) | |
| matchState := -1 | |
| var c byte | |
| goto State12 | |
| State8: | |
| goto State65 | |
| State12: | |
| if pos >= n { | |
| goto End | |
| } | |
| c = input[pos] | |
| switch { | |
| case c >= 0x09 && c <= 0x0A || c >= 0x0C && c <= 0x0D || c == ' ': | |
| case c >= '0' && c <= '9': | |
| case c >= 'A' && c <= 'Z' || c == '_' || c >= 'b' && c <= 'z': | |
| case c == '[': | |
| goto State8 | |
| case c == 'a': | |
| default: | |
| goto End | |
| } | |
| State64: | |
| matchState = 179 | |
| if pos >= n { | |
| goto End | |
| } | |
| pos = n | |
| goto State64 | |
| State65: | |
| State66: | |
| matchState = 181 | |
| if pos >= n { | |
| goto End | |
| } | |
| pos = n | |
| goto State66 | |
| End: | |
| if matchState != -1 { | |
| switch matchState { | |
| case 178: | |
| case 156: | |
| case 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175: | |
| case 176, 177, 181, 182, 183: | |
| case 179, 184: | |
| case 180: | |
| } | |
| return true | |
| } | |
| return false | |
| } |