Module pyparsing :: Class Keyword |
[frames] | no frames]

# Class Keyword

source code

       object --+
                |
    ParserElement --+
                    |
                Token --+
                        |
                       Keyword

Known Subclasses:
  - CaselessKeyword

Token to exactly match a specified string as a keyword, that is, it must be immediately followed by a non-keyword character. Compare with `Literal`:

- `Literal("if")` will match the leading `'if'` in `'ifAndOnlyIf'`.
- `Keyword("if")` will not; it will only match the leading `'if'` in `'if x=1'`, or `'if(y==2)'`

Accepts two optional constructor arguments in addition to the keyword string:

- `identChars` is a string of characters that would be valid identifier characters, defaulting to all alphanumerics + "_" and "$"
- `caseless` allows case-insensitive matching, default is `False`.

Example:

       Keyword("start").parseString("start")  # -> ['start']
       Keyword("start").parseString("starting")  # -> Exception

For case-insensitive matching, use CaselessKeyword.

Instance Methods
__init__(self, matchString, identChars=`'``ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678``...`, caseless=False) x.__init__(...) initializes x; see help(type(x)) for signature | source code
parseImpl(self, instring, loc, doActions=True) | source code
copy(self) Make a copy of this `ParserElement`. | source code
Inherited from `ParserElement`: `__add__`, `__and__`, `__call__`, `__eq__`, `__hash__`, `__invert__`, `__mul__`, `__ne__`, `__or__`, `__radd__`, `__rand__`, `__repr__`, `__req__`, `__rmul__`, `__rne__`, `__ror__`, `__rsub__`, `__rxor__`, `__str__`, `__sub__`, `__xor__`, `addCondition`, `addParseAction`, `canParseNext`, `checkRecursion`, `ignore`, `leaveWhitespace`, `matches`, `parseFile`, `parseString`, `parseWithTabs`, `postParse`, `preParse`, `runTests`, `scanString`, `searchString`, `setBreak`, `setDebug`, `setDebugActions`, `setFailAction`, `setName`, `setParseAction`, `setResultsName`, `setWhitespaceChars`, `split`, `streamline`, `suppress`, `transformString`, `tryParse`, `validate` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Static Methods
setDefaultKeywordChars(chars) Overrides the default Keyword chars | source code
Inherited from `ParserElement`: `enablePackrat`, `inlineLiteralsUsing`, `resetCache`, `setDefaultWhitespaceChars`

Class Variables
| DEFAULT_KEYWORD_CHARS = ``'``ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijk``...``
Inherited from `ParserElement`: `DEFAULT_WHITE_CHARS`, `packrat_cache`, `packrat_cache_lock`, `packrat_cache_stats`, `verbose_stacktrace`

Properties
Inherited from `object`: `__class__`

Method Details

### __init__(self, matchString, identChars=`'``ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678``...`, caseless=False) (Constructor) | source code
x.__init__(...) initializes x; see help(type(x)) for signature Overrides: object.__init__ (inherited documentation)

### parseImpl(self, instring, loc, doActions=True) | source code
Overrides: ParserElement.parseImpl

### copy(self) | source code
Make a copy of this `ParserElement`. Useful for defining different parse actions for the same parsing pattern, using copies of the original parse element. Example:
       integer = Word(nums).setParseAction(lambda toks: int(toks[0]))
       integerK = integer.copy().addParseAction(lambda toks: toks[0]*1024) + Suppress("K")
       integerM = integer.copy().addParseAction(lambda toks: toks[0]*1024*1024) + Suppress("M")

       print(OneOrMore(integerK | integerM | integer).parseString("5K 100 640K 256M"))
prints:
       [5120, 100, 655360, 268435456]
Equivalent form of `expr.copy()` is just `expr()`:
       integerM = integer().addParseAction(lambda toks: toks[0]*1024*1024) + Suppress("M")
Overrides: ParserElement.copy (inherited documentation)

Class Variable Details

  ### DEFAULT_KEYWORD_CHARS Value:
      'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_$'