123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- """
- pygments.lexers.bdd
- ~~~~~~~~~~~~~~~~~~~
- Lexer for BDD(Behavior-driven development).
- :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
- :license: BSD, see LICENSE for details.
- """
- from pygments.lexer import RegexLexer, include
- from pygments.token import Comment, Keyword, Name, String, Number, Text, \
- Punctuation, Whitespace
- __all__ = ['BddLexer']
- class BddLexer(RegexLexer):
- """
- Lexer for BDD(Behavior-driven development), which highlights not only
- keywords, but also comments, punctuations, strings, numbers, and variables.
- """
- name = 'Bdd'
- aliases = ['bdd']
- filenames = ['*.feature']
- mimetypes = ['text/x-bdd']
- url = 'https://en.wikipedia.org/wiki/Behavior-driven_development'
- version_added = '2.11'
- step_keywords = (r'Given|When|Then|Add|And|Feature|Scenario Outline|'
- r'Scenario|Background|Examples|But')
- tokens = {
- 'comments': [
- (r'^\s*#.*$', Comment),
- ],
- 'miscellaneous': [
- (r'(<|>|\[|\]|=|\||:|\(|\)|\{|\}|,|\.|;|-|_|\$)', Punctuation),
- (r'((?<=\<)[^\\>]+(?=\>))', Name.Variable),
- (r'"([^\"]*)"', String),
- (r'^@\S+', Name.Label),
- ],
- 'numbers': [
- (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number),
- ],
- 'root': [
- (r'\n|\s+', Whitespace),
- (step_keywords, Keyword),
- include('comments'),
- include('miscellaneous'),
- include('numbers'),
- (r'\S+', Text),
- ]
- }
- def analyse_text(self, text):
- return
|