summaryrefslogtreecommitdiff
path: root/tests/examplefiles/example.kt
diff options
context:
space:
mode:
authorJames Strachan <james.strachan@gmail.com>2012-03-05 16:06:42 +0000
committerJames Strachan <james.strachan@gmail.com>2012-03-05 16:06:42 +0000
commit88d99a8d8f2aff683998deb7f483d46ca9dd07be (patch)
treebdb7072a65737eedafc36f29ae74dc8ec867ba69 /tests/examplefiles/example.kt
parent8acf7e14cbe380a51c3c732761334ee2055e878e (diff)
downloadpygments-88d99a8d8f2aff683998deb7f483d46ca9dd07be.tar.gz
add support for Kotlin programming language
Diffstat (limited to 'tests/examplefiles/example.kt')
-rw-r--r--tests/examplefiles/example.kt47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/examplefiles/example.kt b/tests/examplefiles/example.kt
new file mode 100644
index 00000000..59291333
--- /dev/null
+++ b/tests/examplefiles/example.kt
@@ -0,0 +1,47 @@
+package addressbook
+
+class Contact(
+ val name : String,
+ val emails : List<EmailAddress>,
+ val addresses : List<PostalAddress>,
+ val phonenums : List<PhoneNumber>
+)
+
+class EmailAddress(
+ val user : String,
+ val host : String
+)
+
+class PostalAddress(
+ val streetAddress : String,
+ val city : String,
+ val zip : String,
+ val state : USState?,
+ val country : Country
+) {
+ assert {(state == null) xor (country == Countries["US"]) }
+}
+
+class PhoneNumber(
+ val country : Country,
+ val areaCode : Int,
+ val number : Long
+)
+
+object Countries {
+ fun get(id : CountryID) : Country = countryTable[id]
+
+ private var table : Map<String, Country>? = null
+ private val countryTable : Map<String, Country>
+ get() {
+ if (table == null) {
+ table = HashMap()
+ for (line in TextFile("countries.txt").lines(stripWhiteSpace = true)) {
+ table[line] = Country(line)
+ }
+ }
+ return table
+ }
+}
+
+class Country(val name : String) \ No newline at end of file