import unittest
import string
from SwiftFormat.Parser import *
from SwiftFormat.Syntax import *


class KeywordTest(unittest.TestCase):
    def testDeclarationKeywords(self):
        parser = keyword()
        assert parser.parse(u"class")
        assert parser.parse(u"deinit")
        assert parser.parse(u"enum")
        assert parser.parse(u"extension")
        assert parser.parse(u"func")
        assert parser.parse(u"import")
        assert parser.parse(u"init")
        assert parser.parse(u"inout")
        assert parser.parse(u"internal")
        assert parser.parse(u"let")
        assert parser.parse(u"operator")
        assert parser.parse(u"private")
        assert parser.parse(u"protocol")
        assert parser.parse(u"public")
        assert parser.parse(u"static")
        assert parser.parse(u"struct")
        assert parser.parse(u"subscript")
        assert parser.parse(u"typealias")
        assert parser.parse(u"var")

    def testStatementKeyword(self):
        parser = keyword()
        assert parser.parse(u"break")
        assert parser.parse(u"case")
        assert parser.parse(u"continue")
        assert parser.parse(u"default")
        assert parser.parse(u"defer")
        assert parser.parse(u"do")
        assert parser.parse(u"else")
        assert parser.parse(u"fallthrough")
        assert parser.parse(u"for")
        assert parser.parse(u"guard")
        assert parser.parse(u"if")
        assert parser.parse(u"in")
        assert parser.parse(u"repeat")
        assert parser.parse(u"return")
        assert parser.parse(u"switch")
        assert parser.parse(u"where")
        assert parser.parse(u"while")

    def testExpressionKeyword(self):
        parser = keyword()
        assert parser.parse(u"as")
        assert parser.parse(u"catch")
        assert parser.parse(u"dynamicType")
        assert parser.parse(u"false")
        assert parser.parse(u"is")
        assert parser.parse(u"nil")
        assert parser.parse(u"rethrows")
        assert parser.parse(u"super")
        assert parser.parse(u"self")
        assert parser.parse(u"Self")
        assert parser.parse(u"throw")
        assert parser.parse(u"throws")
        assert parser.parse(u"true")
        assert parser.parse(u"try")
        assert parser.parse(u"__COLUMN__")
        assert parser.parse(u"__FILE__")
        assert parser.parse(u"__FUNCTION__")
        assert parser.parse(u"__LINE__")

    def testContextKeyword(self):
        parser = keyword()
        assert parser.parse(u"associativity")
        assert parser.parse(u"convenience")
        assert parser.parse(u"dynamic")
        assert parser.parse(u"didSet")
        assert parser.parse(u"final")
        assert parser.parse(u"get")
        assert parser.parse(u"infix")
        assert parser.parse(u"indirect")
        assert parser.parse(u"lazy")
        assert parser.parse(u"left")
        assert parser.parse(u"mutating")
        assert parser.parse(u"none")
        assert parser.parse(u"nonmutating")
        assert parser.parse(u"optional")
        assert parser.parse(u"override")
        assert parser.parse(u"postfix")
        assert parser.parse(u"precedence")
        assert parser.parse(u"prefix")
        assert parser.parse(u"Protocol")
        assert parser.parse(u"required")
        assert parser.parse(u"right")
        assert parser.parse(u"set")
        assert parser.parse(u"Type")
        assert parser.parse(u"unowned")
        assert parser.parse(u"weak")
        assert parser.parse(u"willSet")
        assert (parser.parse(u"willSet")[0].meta.type & SwiftTypes.KEYWORD_RESERVED) != 0
        assert (parser.parse(u"willSet")[0].meta.type & SwiftTypes.IDENTIFIER) != 0

    def testPatternKeyword(self):
        parser = keyword()
        assert parser.parse(u"_")
        assert parser.parse(u"_")[0].meta.type == SwiftTypes.KEYWORD_PATTERNS

    def testPunctuationKeywords(self):
        parser = keyword()
        assert parser.parse(u"(")
        assert parser.parse(u")")
        assert parser.parse(u"{")
        assert parser.parse(u"}")
        assert parser.parse(u"[")
        assert parser.parse(u"]")
        assert parser.parse(u".")
        assert parser.parse(u",")
        assert parser.parse(u":")
        assert parser.parse(u";")
        assert parser.parse(u"=")
        assert parser.parse(u"@")
        assert parser.parse(u"#")
        assert parser.parse(u"&")
        assert parser.parse(u"->")
        assert parser.parse(u"`")
        assert parser.parse(u"?")
        assert parser.parse(u"!")
f94b3cdfb04ffe20d58e9c2ca1752da143d184be
<mask token>


class KeywordTest(unittest.TestCase):
    <mask token>

    def testStatementKeyword(self):
        parser = keyword()
        assert parser.parse(u'break')
        assert parser.parse(u'case')
        assert parser.parse(u'continue')
        assert parser.parse(u'default')
        assert parser.parse(u'defer')
        assert parser.parse(u'do')
        assert parser.parse(u'else')
        assert parser.parse(u'fallthrough')
        assert parser.parse(u'for')
        assert parser.parse(u'guard')
        assert parser.parse(u'if')
        assert parser.parse(u'in')
        assert parser.parse(u'repeat')
        assert parser.parse(u'return')
        assert parser.parse(u'switch')
        assert parser.parse(u'where')
        assert parser.parse(u'while')

    def testExpressionKeyword(self):
        parser = keyword()
        assert parser.parse(u'as')
        assert parser.parse(u'catch')
        assert parser.parse(u'dynamicType')
        assert parser.parse(u'false')
        assert parser.parse(u'is')
        assert parser.parse(u'nil')
        assert parser.parse(u'rethrows')
        assert parser.parse(u'super')
        assert parser.parse(u'self')
        assert parser.parse(u'Self')
        assert parser.parse(u'throw')
        assert parser.parse(u'throws')
        assert parser.parse(u'true')
        assert parser.parse(u'try')
        assert parser.parse(u'__COLUMN__')
        assert parser.parse(u'__FILE__')
        assert parser.parse(u'__FUNCTION__')
        assert parser.parse(u'__LINE__')

    def testContextKeyword(self):
        parser = keyword()
        assert parser.parse(u'associativity')
        assert parser.parse(u'convenience')
        assert parser.parse(u'dynamic')
        assert parser.parse(u'didSet')
        assert parser.parse(u'final')
        assert parser.parse(u'get')
        assert parser.parse(u'infix')
        assert parser.parse(u'indirect')
        assert parser.parse(u'lazy')
        assert parser.parse(u'left')
        assert parser.parse(u'mutating')
        assert parser.parse(u'none')
        assert parser.parse(u'nonmutating')
        assert parser.parse(u'optional')
        assert parser.parse(u'override')
        assert parser.parse(u'postfix')
        assert parser.parse(u'precedence')
        assert parser.parse(u'prefix')
        assert parser.parse(u'Protocol')
        assert parser.parse(u'required')
        assert parser.parse(u'right')
        assert parser.parse(u'set')
        assert parser.parse(u'Type')
        assert parser.parse(u'unowned')
        assert parser.parse(u'weak')
        assert parser.parse(u'willSet')
        assert parser.parse(u'willSet')[0
            ].meta.type & SwiftTypes.KEYWORD_RESERVED != 0
        assert parser.parse(u'willSet')[0
            ].meta.type & SwiftTypes.IDENTIFIER != 0

    def testPatternKeyword(self):
        parser = keyword()
        assert parser.parse(u'_')
        assert parser.parse(u'_')[0].meta.type == SwiftTypes.KEYWORD_PATTERNS
    <mask token>

<mask token>


class KeywordTest(unittest.TestCase):

    def testDeclarationKeywords(self):
        parser = keyword()
        assert parser.parse(u'class')
        assert parser.parse(u'deinit')
        assert parser.parse(u'enum')
        assert parser.parse(u'extension')
        assert parser.parse(u'func')
        assert parser.parse(u'import')
        assert parser.parse(u'init')
        assert parser.parse(u'inout')
        assert parser.parse(u'internal')
        assert parser.parse(u'let')
        assert parser.parse(u'operator')
        assert parser.parse(u'private')
        assert parser.parse(u'protocol')
        assert parser.parse(u'public')
        assert parser.parse(u'static')
        assert parser.parse(u'struct')
        assert parser.parse(u'subscript')
        assert parser.parse(u'typealias')
        assert parser.parse(u'var')

    def testStatementKeyword(self):
        parser = keyword()
        assert parser.parse(u'break')
        assert parser.parse(u'case')
        assert parser.parse(u'continue')
        assert parser.parse(u'default')
        assert parser.parse(u'defer')
        assert parser.parse(u'do')
        assert parser.parse(u'else')
        assert parser.parse(u'fallthrough')
        assert parser.parse(u'for')
        assert parser.parse(u'guard')
        assert parser.parse(u'if')
        assert parser.parse(u'in')
        assert parser.parse(u'repeat')
        assert parser.parse(u'return')
        assert parser.parse(u'switch')
        assert parser.parse(u'where')
        assert parser.parse(u'while')

    def testExpressionKeyword(self):
        parser = keyword()
        assert parser.parse(u'as')
        assert parser.parse(u'catch')
        assert parser.parse(u'dynamicType')
        assert parser.parse(u'false')
        assert parser.parse(u'is')
        assert parser.parse(u'nil')
        assert parser.parse(u'rethrows')
        assert parser.parse(u'super')
        assert parser.parse(u'self')
        assert parser.parse(u'Self')
        assert parser.parse(u'throw')
        assert parser.parse(u'throws')
        assert parser.parse(u'true')
        assert parser.parse(u'try')
        assert parser.parse(u'__COLUMN__')
        assert parser.parse(u'__FILE__')
        assert parser.parse(u'__FUNCTION__')
        assert parser.parse(u'__LINE__')

    def testContextKeyword(self):
        parser = keyword()
        assert parser.parse(u'associativity')
        assert parser.parse(u'convenience')
        assert parser.parse(u'dynamic')
        assert parser.parse(u'didSet')
        assert parser.parse(u'final')
        assert parser.parse(u'get')
        assert parser.parse(u'infix')
        assert parser.parse(u'indirect')
        assert parser.parse(u'lazy')
        assert parser.parse(u'left')
        assert parser.parse(u'mutating')
        assert parser.parse(u'none')
        assert parser.parse(u'nonmutating')
        assert parser.parse(u'optional')
        assert parser.parse(u'override')
        assert parser.parse(u'postfix')
        assert parser.parse(u'precedence')
        assert parser.parse(u'prefix')
        assert parser.parse(u'Protocol')
        assert parser.parse(u'required')
        assert parser.parse(u'right')
        assert parser.parse(u'set')
        assert parser.parse(u'Type')
        assert parser.parse(u'unowned')
        assert parser.parse(u'weak')
        assert parser.parse(u'willSet')
        assert parser.parse(u'willSet')[0
            ].meta.type & SwiftTypes.KEYWORD_RESERVED != 0
        assert parser.parse(u'willSet')[0
            ].meta.type & SwiftTypes.IDENTIFIER != 0

    def testPatternKeyword(self):
        parser = keyword()
        assert parser.parse(u'_')
        assert parser.parse(u'_')[0].meta.type == SwiftTypes.KEYWORD_PATTERNS
    <mask token>

<mask token>


class KeywordTest(unittest.TestCase):

    def testDeclarationKeywords(self):
        parser = keyword()
        assert parser.parse(u'class')
        assert parser.parse(u'deinit')
        assert parser.parse(u'enum')
        assert parser.parse(u'extension')
        assert parser.parse(u'func')
        assert parser.parse(u'import')
        assert parser.parse(u'init')
        assert parser.parse(u'inout')
        assert parser.parse(u'internal')
        assert parser.parse(u'let')
        assert parser.parse(u'operator')
        assert parser.parse(u'private')
        assert parser.parse(u'protocol')
        assert parser.parse(u'public')
        assert parser.parse(u'static')
        assert parser.parse(u'struct')
        assert parser.parse(u'subscript')
        assert parser.parse(u'typealias')
        assert parser.parse(u'var')

    def testStatementKeyword(self):
        parser = keyword()
        assert parser.parse(u'break')
        assert parser.parse(u'case')
        assert parser.parse(u'continue')
        assert parser.parse(u'default')
        assert parser.parse(u'defer')
        assert parser.parse(u'do')
        assert parser.parse(u'else')
        assert parser.parse(u'fallthrough')
        assert parser.parse(u'for')
        assert parser.parse(u'guard')
        assert parser.parse(u'if')
        assert parser.parse(u'in')
        assert parser.parse(u'repeat')
        assert parser.parse(u'return')
        assert parser.parse(u'switch')
        assert parser.parse(u'where')
        assert parser.parse(u'while')

    def testExpressionKeyword(self):
        parser = keyword()
        assert parser.parse(u'as')
        assert parser.parse(u'catch')
        assert parser.parse(u'dynamicType')
        assert parser.parse(u'false')
        assert parser.parse(u'is')
        assert parser.parse(u'nil')
        assert parser.parse(u'rethrows')
        assert parser.parse(u'super')
        assert parser.parse(u'self')
        assert parser.parse(u'Self')
        assert parser.parse(u'throw')
        assert parser.parse(u'throws')
        assert parser.parse(u'true')
        assert parser.parse(u'try')
        assert parser.parse(u'__COLUMN__')
        assert parser.parse(u'__FILE__')
        assert parser.parse(u'__FUNCTION__')
        assert parser.parse(u'__LINE__')

    def testContextKeyword(self):
        parser = keyword()
        assert parser.parse(u'associativity')
        assert parser.parse(u'convenience')
        assert parser.parse(u'dynamic')
        assert parser.parse(u'didSet')
        assert parser.parse(u'final')
        assert parser.parse(u'get')
        assert parser.parse(u'infix')
        assert parser.parse(u'indirect')
        assert parser.parse(u'lazy')
        assert parser.parse(u'left')
        assert parser.parse(u'mutating')
        assert parser.parse(u'none')
        assert parser.parse(u'nonmutating')
        assert parser.parse(u'optional')
        assert parser.parse(u'override')
        assert parser.parse(u'postfix')
        assert parser.parse(u'precedence')
        assert parser.parse(u'prefix')
        assert parser.parse(u'Protocol')
        assert parser.parse(u'required')
        assert parser.parse(u'right')
        assert parser.parse(u'set')
        assert parser.parse(u'Type')
        assert parser.parse(u'unowned')
        assert parser.parse(u'weak')
        assert parser.parse(u'willSet')
        assert parser.parse(u'willSet')[0
            ].meta.type & SwiftTypes.KEYWORD_RESERVED != 0
        assert parser.parse(u'willSet')[0
            ].meta.type & SwiftTypes.IDENTIFIER != 0

    def testPatternKeyword(self):
        parser = keyword()
        assert parser.parse(u'_')
        assert parser.parse(u'_')[0].meta.type == SwiftTypes.KEYWORD_PATTERNS

    def testPunctuationKeywords(self):
        parser = keyword()
        assert parser.parse(u'(')
        assert parser.parse(u')')
        assert parser.parse(u'{')
        assert parser.parse(u'}')
        assert parser.parse(u'[')
        assert parser.parse(u']')
        assert parser.parse(u'.')
        assert parser.parse(u',')
        assert parser.parse(u':')
        assert parser.parse(u';')
        assert parser.parse(u'=')
        assert parser.parse(u'@')
        assert parser.parse(u'#')
        assert parser.parse(u'&')
        assert parser.parse(u'->')
        assert parser.parse(u'`')
        assert parser.parse(u'?')
        assert parser.parse(u'!')

import unittest
import string
from SwiftFormat.Parser import *
from SwiftFormat.Syntax import *


class KeywordTest(unittest.TestCase):

    def testDeclarationKeywords(self):
        parser = keyword()
        assert parser.parse(u'class')
        assert parser.parse(u'deinit')
        assert parser.parse(u'enum')
        assert parser.parse(u'extension')
        assert parser.parse(u'func')
        assert parser.parse(u'import')
        assert parser.parse(u'init')
        assert parser.parse(u'inout')
        assert parser.parse(u'internal')
        assert parser.parse(u'let')
        assert parser.parse(u'operator')
        assert parser.parse(u'private')
        assert parser.parse(u'protocol')
        assert parser.parse(u'public')
        assert parser.parse(u'static')
        assert parser.parse(u'struct')
        assert parser.parse(u'subscript')
        assert parser.parse(u'typealias')
        assert parser.parse(u'var')

    def testStatementKeyword(self):
        parser = keyword()
        assert parser.parse(u'break')
        assert parser.parse(u'case')
        assert parser.parse(u'continue')
        assert parser.parse(u'default')
        assert parser.parse(u'defer')
        assert parser.parse(u'do')
        assert parser.parse(u'else')
        assert parser.parse(u'fallthrough')
        assert parser.parse(u'for')
        assert parser.parse(u'guard')
        assert parser.parse(u'if')
        assert parser.parse(u'in')
        assert parser.parse(u'repeat')
        assert parser.parse(u'return')
        assert parser.parse(u'switch')
        assert parser.parse(u'where')
        assert parser.parse(u'while')

    def testExpressionKeyword(self):
        parser = keyword()
        assert parser.parse(u'as')
        assert parser.parse(u'catch')
        assert parser.parse(u'dynamicType')
        assert parser.parse(u'false')
        assert parser.parse(u'is')
        assert parser.parse(u'nil')
        assert parser.parse(u'rethrows')
        assert parser.parse(u'super')
        assert parser.parse(u'self')
        assert parser.parse(u'Self')
        assert parser.parse(u'throw')
        assert parser.parse(u'throws')
        assert parser.parse(u'true')
        assert parser.parse(u'try')
        assert parser.parse(u'__COLUMN__')
        assert parser.parse(u'__FILE__')
        assert parser.parse(u'__FUNCTION__')
        assert parser.parse(u'__LINE__')

    def testContextKeyword(self):
        parser = keyword()
        assert parser.parse(u'associativity')
        assert parser.parse(u'convenience')
        assert parser.parse(u'dynamic')
        assert parser.parse(u'didSet')
        assert parser.parse(u'final')
        assert parser.parse(u'get')
        assert parser.parse(u'infix')
        assert parser.parse(u'indirect')
        assert parser.parse(u'lazy')
        assert parser.parse(u'left')
        assert parser.parse(u'mutating')
        assert parser.parse(u'none')
        assert parser.parse(u'nonmutating')
        assert parser.parse(u'optional')
        assert parser.parse(u'override')
        assert parser.parse(u'postfix')
        assert parser.parse(u'precedence')
        assert parser.parse(u'prefix')
        assert parser.parse(u'Protocol')
        assert parser.parse(u'required')
        assert parser.parse(u'right')
        assert parser.parse(u'set')
        assert parser.parse(u'Type')
        assert parser.parse(u'unowned')
        assert parser.parse(u'weak')
        assert parser.parse(u'willSet')
        assert parser.parse(u'willSet')[0
            ].meta.type & SwiftTypes.KEYWORD_RESERVED != 0
        assert parser.parse(u'willSet')[0
            ].meta.type & SwiftTypes.IDENTIFIER != 0

    def testPatternKeyword(self):
        parser = keyword()
        assert parser.parse(u'_')
        assert parser.parse(u'_')[0].meta.type == SwiftTypes.KEYWORD_PATTERNS

    def testPunctuationKeywords(self):
        parser = keyword()
        assert parser.parse(u'(')
        assert parser.parse(u')')
        assert parser.parse(u'{')
        assert parser.parse(u'}')
        assert parser.parse(u'[')
        assert parser.parse(u']')
        assert parser.parse(u'.')
        assert parser.parse(u',')
        assert parser.parse(u':')
        assert parser.parse(u';')
        assert parser.parse(u'=')
        assert parser.parse(u'@')
        assert parser.parse(u'#')
        assert parser.parse(u'&')
        assert parser.parse(u'->')
        assert parser.parse(u'`')
        assert parser.parse(u'?')
        assert parser.parse(u'!')

import unittest
import string
from SwiftFormat.Parser import *
from SwiftFormat.Syntax import *


class KeywordTest(unittest.TestCase):
    def testDeclarationKeywords(self):
        parser = keyword()
        assert parser.parse(u"class")
        assert parser.parse(u"deinit")
        assert parser.parse(u"enum")
        assert parser.parse(u"extension")
        assert parser.parse(u"func")
        assert parser.parse(u"import")
        assert parser.parse(u"init")
        assert parser.parse(u"inout")
        assert parser.parse(u"internal")
        assert parser.parse(u"let")
        assert parser.parse(u"operator")
        assert parser.parse(u"private")
        assert parser.parse(u"protocol")
        assert parser.parse(u"public")
        assert parser.parse(u"static")
        assert parser.parse(u"struct")
        assert parser.parse(u"subscript")
        assert parser.parse(u"typealias")
        assert parser.parse(u"var")

    def testStatementKeyword(self):
        parser = keyword()
        assert parser.parse(u"break")
        assert parser.parse(u"case")
        assert parser.parse(u"continue")
        assert parser.parse(u"default")
        assert parser.parse(u"defer")
        assert parser.parse(u"do")
        assert parser.parse(u"else")
        assert parser.parse(u"fallthrough")
        assert parser.parse(u"for")
        assert parser.parse(u"guard")
        assert parser.parse(u"if")
        assert parser.parse(u"in")
        assert parser.parse(u"repeat")
        assert parser.parse(u"return")
        assert parser.parse(u"switch")
        assert parser.parse(u"where")
        assert parser.parse(u"while")

    def testExpressionKeyword(self):
        parser = keyword()
        assert parser.parse(u"as")
        assert parser.parse(u"catch")
        assert parser.parse(u"dynamicType")
        assert parser.parse(u"false")
        assert parser.parse(u"is")
        assert parser.parse(u"nil")
        assert parser.parse(u"rethrows")
        assert parser.parse(u"super")
        assert parser.parse(u"self")
        assert parser.parse(u"Self")
        assert parser.parse(u"throw")
        assert parser.parse(u"throws")
        assert parser.parse(u"true")
        assert parser.parse(u"try")
        assert parser.parse(u"__COLUMN__")
        assert parser.parse(u"__FILE__")
        assert parser.parse(u"__FUNCTION__")
        assert parser.parse(u"__LINE__")

    def testContextKeyword(self):
        parser = keyword()
        assert parser.parse(u"associativity")
        assert parser.parse(u"convenience")
        assert parser.parse(u"dynamic")
        assert parser.parse(u"didSet")
        assert parser.parse(u"final")
        assert parser.parse(u"get")
        assert parser.parse(u"infix")
        assert parser.parse(u"indirect")
        assert parser.parse(u"lazy")
        assert parser.parse(u"left")
        assert parser.parse(u"mutating")
        assert parser.parse(u"none")
        assert parser.parse(u"nonmutating")
        assert parser.parse(u"optional")
        assert parser.parse(u"override")
        assert parser.parse(u"postfix")
        assert parser.parse(u"precedence")
        assert parser.parse(u"prefix")
        assert parser.parse(u"Protocol")
        assert parser.parse(u"required")
        assert parser.parse(u"right")
        assert parser.parse(u"set")
        assert parser.parse(u"Type")
        assert parser.parse(u"unowned")
        assert parser.parse(u"weak")
        assert parser.parse(u"willSet")
        assert (parser.parse(u"willSet")[0].meta.type & SwiftTypes.KEYWORD_RESERVED) != 0
        assert (parser.parse(u"willSet")[0].meta.type & SwiftTypes.IDENTIFIER) != 0

    def testPatternKeyword(self):
        parser = keyword()
        assert parser.parse(u"_")
        assert parser.parse(u"_")[0].meta.type == SwiftTypes.KEYWORD_PATTERNS

    def testPunctuationKeywords(self):
        parser = keyword()
        assert parser.parse(u"(")
        assert parser.parse(u")")
        assert parser.parse(u"{")
        assert parser.parse(u"}")
        assert parser.parse(u"[")
        assert parser.parse(u"]")
        assert parser.parse(u".")
        assert parser.parse(u",")
        assert parser.parse(u":")
        assert parser.parse(u";")
        assert parser.parse(u"=")
        assert parser.parse(u"@")
        assert parser.parse(u"#")
        assert parser.parse(u"&")
        assert parser.parse(u"->")
        assert parser.parse(u"`")
        assert parser.parse(u"?")
        assert parser.parse(u"!")