xref: /OpenGrok/opengrok-indexer/src/main/jflex/analysis/swift/Swift.lexh (revision d219b4cea555a12b602d2d5518daa22134ad4879)
1*d219b4ceSAdam Hornacek/*
2*d219b4ceSAdam Hornacek * CDDL HEADER START
3*d219b4ceSAdam Hornacek *
4*d219b4ceSAdam Hornacek * The contents of this file are subject to the terms of the
5*d219b4ceSAdam Hornacek * Common Development and Distribution License (the "License").
6*d219b4ceSAdam Hornacek * You may not use this file except in compliance with the License.
7*d219b4ceSAdam Hornacek *
8*d219b4ceSAdam Hornacek * See LICENSE.txt included in this distribution for the specific
9*d219b4ceSAdam Hornacek * language governing permissions and limitations under the License.
10*d219b4ceSAdam Hornacek *
11*d219b4ceSAdam Hornacek * When distributing Covered Code, include this CDDL HEADER in each
12*d219b4ceSAdam Hornacek * file and include the License file at LICENSE.txt.
13*d219b4ceSAdam Hornacek * If applicable, add the following below this CDDL HEADER, with the
14*d219b4ceSAdam Hornacek * fields enclosed by brackets "[]" replaced with your own identifying
15*d219b4ceSAdam Hornacek * information: Portions Copyright [yyyy] [name of copyright owner]
16*d219b4ceSAdam Hornacek *
17*d219b4ceSAdam Hornacek * CDDL HEADER END
18*d219b4ceSAdam Hornacek */
19*d219b4ceSAdam Hornacek
20*d219b4ceSAdam Hornacek/*
21*d219b4ceSAdam Hornacek * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
22*d219b4ceSAdam Hornacek * Portions Copyright (c) 2017, Chris Fraire <cfraire@me.com>.
23*d219b4ceSAdam Hornacek */
24*d219b4ceSAdam Hornacek
25*d219b4ceSAdam HornacekIdentifier = {identifier0} {identifier_n}*
26*d219b4ceSAdam Hornacek
27*d219b4ceSAdam Hornacekidentifier0 = ([a-zA-Z_] | [\u{00A8}\u{00AA}\u{00AD}\u{00AF}] |
28*d219b4ceSAdam Hornacek    [\u{00B2}–\u{00B5}] | [\u{00B7}–\u{00BA}] | [\u{00BC}–\u{00BE}] |
29*d219b4ceSAdam Hornacek    [\u{00C0}–\u{00D6}] | [\u{00D8}–\u{00F6}] | [\u{00F8}–\u{00FF}] |
30*d219b4ceSAdam Hornacek    [\u{0100}–\u{02FF}] | [\u{0370}–\u{167F}] | [\u{1681}–\u{180D}] |
31*d219b4ceSAdam Hornacek    [\u{180F}–\u{1DBF}] | [\u{1E00}–\u{1FFF}] | [\u{200B}–\u{200D}] |
32*d219b4ceSAdam Hornacek    [\u{202A}–\u{202E}] | [\u{203F}–\u{2040}] | [\u{2054}] |
33*d219b4ceSAdam Hornacek    [\u{2060}–\u{206F}] | [\u{2070}–\u{20CF}] | [\u{2100}–\u{218F}] |
34*d219b4ceSAdam Hornacek    [\u{2460}–\u{24FF}] | [\u{2776}–\u{2793}] | [\u{2C00}–\u{2DFF}] |
35*d219b4ceSAdam Hornacek    [\u{2E80}–\u{2FFF}] | [\u{3004}–\u{3007}] | [\u{3021}–\u{302F}] |
36*d219b4ceSAdam Hornacek    [\u{3031}–\u{303F}] | [\u{3040}–\u{D7FF}] | [\u{F900}–\u{FD3D}] |
37*d219b4ceSAdam Hornacek    [\u{FD40}–\u{FDCF}] | [\u{FDF0}–\u{FE1F}] | [\u{FE30}–\u{FE44}] |
38*d219b4ceSAdam Hornacek    [\u{FE47}–\u{FFFD}] | [\u{10000}–\u{1FFFD}] | [\u{20000}–\u{2FFFD}] |
39*d219b4ceSAdam Hornacek    [\u{30000}–\u{3FFFD}] | [\u{40000}–\u{4FFFD}] | [\u{50000}–\u{5FFFD}] |
40*d219b4ceSAdam Hornacek    [\u{60000}–\u{6FFFD}] | [\u{70000}–\u{7FFFD}] | [\u{80000}–\u{8FFFD}] |
41*d219b4ceSAdam Hornacek    [\u{90000}–\u{9FFFD}] | [\u{A0000}–\u{AFFFD}] | [\u{B0000}–\u{BFFFD}] |
42*d219b4ceSAdam Hornacek    [\u{C0000}–\u{CFFFD}] | [\u{D0000}–\u{DFFFD}] | [\u{E0000}–\u{EFFFD}])
43*d219b4ceSAdam Hornacek
44*d219b4ceSAdam Hornacekidentifier_n = ([0-9] | [\u{0300}–\u{036F}] | [\u{1DC0}–\u{1DFF}] |
45*d219b4ceSAdam Hornacek    [\u{20D0}–\u{20FF}] | [\u{FE20}–\u{FE2F}] | {identifier0})
46*d219b4ceSAdam Hornacek
47*d219b4ceSAdam HornacekImplicitIdentifier = \$ [0-9]+
48*d219b4ceSAdam Hornacek
49*d219b4ceSAdam HornacekNumber = ({binary} | {octal} | {hexadecimal} | \-?({decimal} | {floating}))
50*d219b4ceSAdam Hornacekbinary = 0[bB][01_][01_]*
51*d219b4ceSAdam Hornacekoctal = 0[oO][0-7][0-7_]*
52*d219b4ceSAdam Hornacekhexadecimal = 0[xX] {hexadecimal0}
53*d219b4ceSAdam Hornacekhexadecimal0 = [0-9a-fA-F][0-9a-fA-F_]*
54*d219b4ceSAdam Hornacekdecimal = [0-9][0-9_]*
55*d219b4ceSAdam Hornacekfloating = ({decimal} ("." {decimal})? ([eE] [\+\-]? {decimal})? |
56*d219b4ceSAdam Hornacek    {hexadecimal} ("." {hexadecimal0})? ([pP] [\+\-]? {decimal})?)
57