Skip to content

Commit 3871ada

Browse files
committed
Updated docs
1 parent 5922b30 commit 3871ada

File tree

154 files changed

+28262
-4186
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+28262
-4186
lines changed

Sources/Clang/Cursor.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ public enum VisibilityKind {
311311
/// See the definition of llvm::clang::TemplateArgument::ArgKind for full
312312
/// element descriptions.
313313
public enum TemplateArgumentKind {
314+
case null
314315
case type
315316
case declaration
316317
case nullPtr
@@ -319,11 +320,10 @@ public enum TemplateArgumentKind {
319320
case templateExpansion
320321
case expression
321322
case pack
322-
case invalid
323323

324324
init?(clang: CXTemplateArgumentKind) {
325325
switch clang {
326-
case CXTemplateArgumentKind_Null: return nil
326+
case CXTemplateArgumentKind_Null: self = .null
327327
case CXTemplateArgumentKind_Type: self = .type
328328
case CXTemplateArgumentKind_Declaration: self = .declaration
329329
case CXTemplateArgumentKind_NullPtr: self = .nullPtr
@@ -332,7 +332,7 @@ public enum TemplateArgumentKind {
332332
case CXTemplateArgumentKind_TemplateExpansion: self = .templateExpansion
333333
case CXTemplateArgumentKind_Expression: self = .expression
334334
case CXTemplateArgumentKind_Pack: self = .pack
335-
case CXTemplateArgumentKind_Invalid: self = .invalid
335+
case CXTemplateArgumentKind_Invalid: return nil
336336
default: fatalError("invalid CXTemplateArgumentKind \(clang)")
337337
}
338338
}

Sources/Clang/Cursors.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,11 @@ public struct ObjCProtocolDecl: ClangCursorBacked {
214214
/// An Objective-C @property declaration.
215215
public struct ObjCPropertyDecl: ClangCursorBacked {
216216
let clang: CXCursor
217+
218+
var attributes: ObjCPropertyAttributes {
219+
return ObjCPropertyAttributes(rawValue:
220+
clang_Cursor_getObjCPropertyAttributes(clang, 0))
221+
}
217222
}
218223

219224
/// An Objective-C instance variable.

Sources/Clang/EvalResult.swift

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#if !NO_SWIFTPM
2+
import cclang
3+
#endif
4+
5+
protocol EvalResultKind {
6+
var clang: CXEvalResultKind { get }
7+
}
8+
9+
public struct IntResult: EvalResultKind {
10+
let clang: CXEvalResultKind
11+
public var value: Int {
12+
return Int(clang_EvalResult_getAsInt(clang))
13+
}
14+
}
15+
16+
public struct FloatResult: EvalResultKind {
17+
let clang: CXEvalResultKind
18+
public var value: Double {
19+
return Int(clang_EvalResult_getAsDouble(clang))
20+
}
21+
}
22+
23+
public struct ObjCStrLiteralResult: EvalResultKind {
24+
let clang: CXEvalResultKind
25+
public var value: String {
26+
return String(cString: clang_EvalResult_getAsString(clang))
27+
}
28+
}
29+
30+
public struct StrLiteralResult: EvalResultKind {
31+
let clang: CXEvalResultKind
32+
public var value: String {
33+
return String(cString: clang_EvalResult_getAsString(clang))
34+
}
35+
}
36+
37+
public struct CFStrResult: EvalResultKind {
38+
let clang: CXEvalResultKind
39+
public var value: String {
40+
return String(cString: clang_EvalResult_getAsString(clang))
41+
}
42+
}
43+
44+
public struct OtherResult: EvalResultKind {
45+
let clang: CXEvalResultKind
46+
}
47+
48+
public struct UnExposedResult: EvalResultKind {
49+
let clang: CXEvalResultKind
50+
}
51+
52+
/// Converts a CXEvalResultKind to a EvalResultKind, returning `nil` if it was unsuccessful
53+
func convertEvalResultKind(_ clang: CXEvalResultKind) -> EvalResultKind? {
54+
if <#clang thing is null?#> { return nil }
55+
switch <#Get clang kind#> {
56+
case CXEval_Int: return IntResult(clang: clang)
57+
case CXEval_Float: return FloatResult(clang: clang)
58+
case CXEval_ObjCStrLiteral: return ObjCStrLiteralResult(clang: clang)
59+
case CXEval_StrLiteral: return StrLiteralResult(clang: clang)
60+
case CXEval_CFStr: return CFStrResult(clang: clang)
61+
case CXEval_Other: return OtherResult(clang: clang)
62+
case CXEval_UnExposed: return UnExposedResult(clang: clang)
63+
default: fatalError("invalid CXEvalResultKindKind \(clang)")
64+
}
65+
}

Sources/Clang/FunctionDecl.swift

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#if !NO_SWIFTPM
2+
import cclang
3+
#endif
4+
5+
/// Describes the calling convention of a function type
6+
public enum CallingConvention {
7+
case `default`
8+
case c
9+
case x86StdCall
10+
case x86FastCall
11+
case x86ThisCall
12+
case x86Pascal
13+
case aapcs
14+
case aapcs_vfp
15+
case intelOclBicc
16+
case x86_64Win64
17+
case x86_64SysV
18+
case x86VectorCall
19+
case swift
20+
case preserveMost
21+
case preserveAll
22+
case unexposed
23+
24+
init?(clang: CXCallingConv) {
25+
switch clang {
26+
case CXCallingConv_Default: self = .default
27+
case CXCallingConv_C: self = .c
28+
case CXCallingConv_X86StdCall: self = .x86StdCall
29+
case CXCallingConv_X86FastCall: self = .x86FastCall
30+
case CXCallingConv_X86ThisCall: self = .x86ThisCall
31+
case CXCallingConv_X86Pascal: self = .x86Pascal
32+
case CXCallingConv_AAPCS: self = .aapcs
33+
case CXCallingConv_AAPCS_VFP: self = .aapcs_vfp
34+
case CXCallingConv_IntelOclBicc: self = .intelOclBicc
35+
case CXCallingConv_X86_64Win64: self = .x86_64Win64
36+
case CXCallingConv_X86_64SysV: self = .x86_64SysV
37+
case CXCallingConv_X86VectorCall: self = .x86VectorCall
38+
case CXCallingConv_Swift: self = .swift
39+
case CXCallingConv_PreserveMost: self = .preserveMost
40+
case CXCallingConv_PreserveAll: self = .preserveAll
41+
case CXCallingConv_Invalid: return nil
42+
case CXCallingConv_Unexposed: self = .unexposed
43+
default: fatalError("invalid CXCallingConv \(clang)")
44+
}
45+
}
46+
}
47+
48+
/// Property attributes for an Objective-C @property declaration.
49+
public struct ObjCPropertyAttributes: OptionSet {
50+
public typealias RawValue = CXObjCPropertyAttrKind.RawValue
51+
public let rawValue: RawValue
52+
/// Creates a new ObjCPropertyAttributes from a raw integer value.
53+
public init(rawValue: RawValue) {
54+
self.rawValue = rawValue
55+
}
56+
public static let noattr = ObjCPropertyAttributes(rawValue:
57+
CXObjCPropertyAttr_noattr.rawValue)
58+
public static let readonly = ObjCPropertyAttributes(rawValue:
59+
CXObjCPropertyAttr_readonly.rawValue)
60+
public static let getter = ObjCPropertyAttributes(rawValue:
61+
CXObjCPropertyAttr_getter.rawValue)
62+
public static let assign = ObjCPropertyAttributes(rawValue:
63+
CXObjCPropertyAttr_assign.rawValue)
64+
public static let readwrite = ObjCPropertyAttributes(rawValue:
65+
CXObjCPropertyAttr_readwrite.rawValue)
66+
public static let retain = ObjCPropertyAttributes(rawValue:
67+
CXObjCPropertyAttr_retain.rawValue)
68+
public static let copy = ObjCPropertyAttributes(rawValue:
69+
CXObjCPropertyAttr_copy.rawValue)
70+
public static let nonatomic = ObjCPropertyAttributes(rawValue:
71+
CXObjCPropertyAttr_nonatomic.rawValue)
72+
public static let setter = ObjCPropertyAttributes(rawValue:
73+
CXObjCPropertyAttr_setter.rawValue)
74+
public static let atomic = ObjCPropertyAttributes(rawValue:
75+
CXObjCPropertyAttr_atomic.rawValue)
76+
public static let weak = ObjCPropertyAttributes(rawValue:
77+
CXObjCPropertyAttr_weak.rawValue)
78+
public static let strong = ObjCPropertyAttributes(rawValue:
79+
CXObjCPropertyAttr_strong.rawValue)
80+
public static let unsafe_unretained = ObjCPropertyAttributes(rawValue:
81+
CXObjCPropertyAttr_unsafe_unretained.rawValue)
82+
public static let `class` = ObjCPropertyAttributes(rawValue:
83+
CXObjCPropertyAttr_class.rawValue)
84+
}

Sources/Clang/NameRefOptions.swift

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#if !NO_SWIFTPM
2+
import cclang
3+
#endif
4+
5+
public struct NameRefOptions: OptionSet {
6+
public typealias RawValue = CXNameRefFlags.RawValue
7+
public let rawValue: RawValue
8+
9+
/// Creates a new NameRefOptions from a raw integer value.
10+
public init(rawValue: RawValue) {
11+
self.rawValue = rawValue
12+
}
13+
14+
/// Include the nested-name-specifier, e.g. Foo:: in x.Foo::y, in the range.
15+
public static let wantQualifier = NameRefOptions(rawValue:
16+
CXNameRange_WantQualifier.rawValue)
17+
18+
/// Include the explicit template arguments, e.g. <int> in x.f<int>, in the
19+
/// range.
20+
public static let wantTemplateArgs = NameRefOptions(rawValue:
21+
CXNameRange_WantTemplateArgs.rawValue)
22+
23+
/// If the name is non-contiguous, return the full spanning range.
24+
/// Non-contiguous names occur in Objective-C when a selector with two or more
25+
/// parameters is used, or in C++ when using an operator:
26+
/// ```
27+
/// [object doSomething:here withValue:there]; // Objective-C
28+
/// return some_vector[1]; // C++
29+
/// ```
30+
public static let wantSinglePiece = NameRefOptions(rawValue:
31+
CXNameRange_WantSinglePiece.rawValue)
32+
}

docs/Classes.html

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<a title="Classes Reference"></a>
1414
<header>
1515
<div class="content-wrapper">
16-
<p><a href="index.html"> Docs</a> (70% documented)</p>
16+
<p><a href="index.html"> Docs</a> (65% documented)</p>
1717
</div>
1818
</header>
1919
<div class="content-wrapper">
@@ -43,6 +43,9 @@
4343
<li class="nav-group-task">
4444
<a href="Enums/CXXAccessSpecifierKind.html">CXXAccessSpecifierKind</a>
4545
</li>
46+
<li class="nav-group-task">
47+
<a href="Enums/CallingConvention.html">CallingConvention</a>
48+
</li>
4649
<li class="nav-group-task">
4750
<a href="Enums/DiagnosticSeverity.html">DiagnosticSeverity</a>
4851
</li>
@@ -168,6 +171,9 @@
168171
<li class="nav-group-task">
169172
<a href="Structs.html#/s:V5Clang9BreakStmt">BreakStmt</a>
170173
</li>
174+
<li class="nav-group-task">
175+
<a href="Structs/CFStrResult.html">CFStrResult</a>
176+
</li>
171177
<li class="nav-group-task">
172178
<a href="Structs.html#/s:V5Clang14CStyleCastExpr">CStyleCastExpr</a>
173179
</li>
@@ -366,6 +372,9 @@
366372
<li class="nav-group-task">
367373
<a href="Structs.html#/s:V5Clang12Float128Type">Float128Type</a>
368374
</li>
375+
<li class="nav-group-task">
376+
<a href="Structs/FloatResult.html">FloatResult</a>
377+
</li>
369378
<li class="nav-group-task">
370379
<a href="Structs.html#/s:V5Clang9FloatType">FloatType</a>
371380
</li>
@@ -450,6 +459,9 @@
450459
<li class="nav-group-task">
451460
<a href="Structs.html#/s:V5Clang10Int128Type">Int128Type</a>
452461
</li>
462+
<li class="nav-group-task">
463+
<a href="Structs/IntResult.html">IntResult</a>
464+
</li>
453465
<li class="nav-group-task">
454466
<a href="Structs.html#/s:V5Clang7IntType">IntType</a>
455467
</li>
@@ -522,6 +534,9 @@
522534
<li class="nav-group-task">
523535
<a href="Structs.html#/s:V5Clang16ModuleImportDecl">ModuleImportDecl</a>
524536
</li>
537+
<li class="nav-group-task">
538+
<a href="Structs/NameRefOptions.html">NameRefOptions</a>
539+
</li>
525540
<li class="nav-group-task">
526541
<a href="Structs.html#/s:V5Clang9Namespace">Namespace</a>
527542
</li>
@@ -738,6 +753,9 @@
738753
<li class="nav-group-task">
739754
<a href="Structs.html#/s:V5Clang21ObjCObjectPointerType">ObjCObjectPointerType</a>
740755
</li>
756+
<li class="nav-group-task">
757+
<a href="Structs/ObjCPropertyAttributes.html">ObjCPropertyAttributes</a>
758+
</li>
741759
<li class="nav-group-task">
742760
<a href="Structs.html#/s:V5Clang16ObjCPropertyDecl">ObjCPropertyDecl</a>
743761
</li>
@@ -759,6 +777,9 @@
759777
<li class="nav-group-task">
760778
<a href="Structs.html#/s:V5Clang12ObjCSelfExpr">ObjCSelfExpr</a>
761779
</li>
780+
<li class="nav-group-task">
781+
<a href="Structs/ObjCStrLiteralResult.html">ObjCStrLiteralResult</a>
782+
</li>
762783
<li class="nav-group-task">
763784
<a href="Structs.html#/s:V5Clang17ObjCStringLiteral">ObjCStringLiteral</a>
764785
</li>
@@ -768,6 +789,9 @@
768789
<li class="nav-group-task">
769790
<a href="Structs.html#/s:V5Clang18ObjCSynthesizeDecl">ObjCSynthesizeDecl</a>
770791
</li>
792+
<li class="nav-group-task">
793+
<a href="Structs.html#/s:V5Clang11OtherResult">OtherResult</a>
794+
</li>
771795
<li class="nav-group-task">
772796
<a href="Structs.html#/s:V5Clang17OverloadCandidate">OverloadCandidate</a>
773797
</li>
@@ -852,6 +876,9 @@
852876
<li class="nav-group-task">
853877
<a href="Structs.html#/s:V5Clang8StmtExpr">StmtExpr</a>
854878
</li>
879+
<li class="nav-group-task">
880+
<a href="Structs/StrLiteralResult.html">StrLiteralResult</a>
881+
</li>
855882
<li class="nav-group-task">
856883
<a href="Structs.html#/s:V5Clang13StringLiteral">StringLiteral</a>
857884
</li>
@@ -915,6 +942,9 @@
915942
<li class="nav-group-task">
916943
<a href="Structs.html#/s:V5Clang10UShortType">UShortType</a>
917944
</li>
945+
<li class="nav-group-task">
946+
<a href="Structs.html#/s:V5Clang15UnExposedResult">UnExposedResult</a>
947+
</li>
918948
<li class="nav-group-task">
919949
<a href="Structs.html#/s:V5Clang9UnaryExpr">UnaryExpr</a>
920950
</li>
@@ -1047,7 +1077,7 @@ <h1>Classes</h1>
10471077
</section>
10481078
</section>
10491079
<section id="footer">
1050-
<p>&copy; 2017 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2017-01-25)</p>
1080+
<p>&copy; 2017 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2017-02-13)</p>
10511081
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.3</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
10521082
</section>
10531083
</article>

0 commit comments

Comments
 (0)