mirror of
				https://github.com/arcan1s/ahriman.git
				synced 2025-10-31 13:53:41 +00:00 
			
		
		
		
	try to improve parser
This commit is contained in:
		| @ -39,11 +39,11 @@ class PkgbuildToken(StrEnum): | ||||
|     well-known tokens dictionary | ||||
|  | ||||
|     Attributes: | ||||
|         ArrayStarts(PkgbuildToken): (class attribute) array starts token | ||||
|         ArrayEnds(PkgbuildToken): (class attribute) array ends token | ||||
|         ArrayStarts(PkgbuildToken): (class attribute) array starts token | ||||
|         FunctionDeclaration(PkgbuildToken): (class attribute) function declaration token | ||||
|         FunctionStarts(PkgbuildToken): (class attribute) function starts token | ||||
|         FunctionEnds(PkgbuildToken): (class attribute) function ends token | ||||
|         FunctionStarts(PkgbuildToken): (class attribute) function starts token | ||||
|     """ | ||||
|  | ||||
|     ArrayStarts = "(" | ||||
| @ -113,6 +113,10 @@ class Pkgbuild(Mapping[str, str | list[str]]): | ||||
|         fields = {} | ||||
|  | ||||
|         parser = shlex.shlex(stream, posix=True, punctuation_chars=True) | ||||
|         # ignore substitution and extend bash symbols | ||||
|         parser.wordchars += "${}#:+" | ||||
|         # in case of default behaviour, it will ignore, for example, segment part of url outside of quotes | ||||
|         parser.commenters = "" | ||||
|         while token := parser.get_token(): | ||||
|             try: | ||||
|                 key, value = cls._parse_token(token, parser) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user