diff options
author | James Strachan <james.strachan@gmail.com> | 2012-03-05 16:06:42 +0000 |
---|---|---|
committer | James Strachan <james.strachan@gmail.com> | 2012-03-05 16:06:42 +0000 |
commit | 88d99a8d8f2aff683998deb7f483d46ca9dd07be (patch) | |
tree | bdb7072a65737eedafc36f29ae74dc8ec867ba69 /tests/examplefiles/example.kt | |
parent | 8acf7e14cbe380a51c3c732761334ee2055e878e (diff) | |
download | pygments-88d99a8d8f2aff683998deb7f483d46ca9dd07be.tar.gz |
add support for Kotlin programming language
Diffstat (limited to 'tests/examplefiles/example.kt')
-rw-r--r-- | tests/examplefiles/example.kt | 47 |
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 |