summaryrefslogtreecommitdiff
path: root/tests/examplefiles/example_elixir.ex
diff options
context:
space:
mode:
Diffstat (limited to 'tests/examplefiles/example_elixir.ex')
-rw-r--r--tests/examplefiles/example_elixir.ex233
1 files changed, 0 insertions, 233 deletions
diff --git a/tests/examplefiles/example_elixir.ex b/tests/examplefiles/example_elixir.ex
deleted file mode 100644
index ddca7f60..00000000
--- a/tests/examplefiles/example_elixir.ex
+++ /dev/null
@@ -1,233 +0,0 @@
-# Numbers
-0b0101011
-1234 ; 0x1A ; 0xbeef ; 0763 ; 0o123
-3.14 ; 5.0e21 ; 0.5e-12
-100_000_000
-
-# these are not valid numbers
-0b012 ; 0xboar ; 0o888
-0B01 ; 0XAF ; 0O123
-
-# Characters
-?a ; ?1 ; ?\n ; ?\s ; ?\c ; ? ; ?,
-?\x{12} ; ?\x{abcd}
-?\x34 ; ?\xF
-
-# these show that only the first digit is part of the character
-?\123 ; ?\12 ; ?\7
-
-# Atoms
-:this ; :that
-:'complex atom'
-:"with' \"\" 'quotes"
-:" multi
- line ' \s \123 \xff
-atom"
-:... ; :<<>> ; :%{} ; :% ; :{}
-:++; :--; :*; :~~~; :::
-:% ; :. ; :<-
-
-# Strings
-"Hello world"
-"Interspersed \x{ff} codes \7 \8 \65 \016 and \t\s\\s\z\+ \\ escapes"
-"Quotes ' inside \" \123 the \"\" \xF \\xF string \\\" end"
-"Multiline
- string"
-
-# Char lists
-'this is a list'
-'escapes \' \t \\\''
-'Multiline
- char
- list
-'
-
-# Binaries
-<<1, 2, 3>>
-<<"hello"::binary, c :: utf8, x::[4, unit(2)]>> = "helloâ„¢1"
-
-# Sigils
-~r/this + i\s "a" regex/
-~R'this + i\s "a" regex too'
-~w(hello #{ ["has" <> "123", '\c\d', "\123 interpol" | []] } world)s
-~W(hello #{no "123" \c\d \123 interpol} world)s
-
-~s{Escapes terminators \{ and \}, but no {balancing} # outside of sigil here }
-
-~S"No escapes \s\t\n and no #{interpolation}"
-
-:"atoms work #{"to" <> "o"}"
-
-# Operators
-x = 1 + 2.0 * 3
-y = true and false; z = false or true
-... = 144
-... == !x && y || z
-"hello" |> String.upcase |> String.downcase()
-{^z, a} = {true, x}
-
-# Free operators (added in 1.0.0)
-p ~>> f = bind(p, f)
-p1 ~> p2 = pair_right(p1, p2)
-p1 <~ p2 = pair_left(p1, p2)
-p1 <~> p2 = pair_both(p1, p2)
-p |~> f = map(p, f)
-p1 <|> p2 = either(p1, p2)
-
-# Lists, tuples, maps, keywords
-[1, :a, 'hello'] ++ [2, 3]
-[:head | [?t, ?a, ?i, ?l]]
-
-{:one, 2.0, "three"}
-
-[...: "this", <<>>: "is", %{}: "a keyword", %: "list", {}: "too"]
-["this is an atom too": 1, "so is this": 2]
-[option: "value", key: :word]
-[++: "operator", ~~~: :&&&]
-
-map = %{shortcut: "syntax"}
-%{map | "update" => "me"}
-%{ 12 => 13, :weird => ['thing'] }
-
-# Comprehensions
-for x <- 1..10, x < 5, do: {x, x}
-pixels = "12345678"
-for << <<r::4, g::4, b::4, a::size(4)>> <- pixels >> do
- [r, {g, %{"b" => a}}]
-end
-
-# String interpolation
-"String #{inspect "interpolation"} is quite #{1+4+7} difficult"
-
-# Identifiers
-abc_123 = 1
-_018OP = 2
-A__0 == 3
-
-# Modules
-defmodule Long.Module.Name do
- @moduledoc "Simple module docstring"
-
- @doc """
- Multiline docstring
- "with quotes"
- and #{ inspect %{"interpolation" => "in" <> "action"} }
- now with #{ {:a, 'tuple'} }
- and #{ inspect {
- :tuple,
- %{ with: "nested #{ inspect %{ :interpolation => %{} } }" }
- } }
- """
- defstruct [:a, :name, :height]
-
- @doc ~S'''
- No #{interpolation} of any kind.
- \000 \x{ff}
-
- \n #{\x{ff}}
- '''
- def func(a, b \\ []), do: :ok
-
- @doc false
- def __before_compile__(_) do
- :ok
- end
-end
-
-# Structs
-defmodule Second.Module do
- s = %Long.Module.Name{name: "Silly"}
- %Long.Module.Name{s | height: {192, :cm}}
- ".. #{%Long.Module.Name{s | height: {192, :cm}}} .."
-end
-
-# Types, pseudo-vars, attributes
-defmodule M do
- @custom_attr :some_constant
-
- @before_compile Long.Module.Name
-
- @typedoc "This is a type"
- @type typ :: integer
-
- @typedoc """
- Another type
- """
- @opaque typtyp :: 1..10
-
- @spec func(typ, typtyp) :: :ok | :fail
- def func(a, b) do
- a || b || :ok || :fail
- Path.expand("..", __DIR__)
- IO.inspect __ENV__
- __NOTAPSEUDOVAR__ = 11
- __MODULE__.func(b, a)
- end
-
- defmacro m() do
- __CALLER__
- end
-end
-
-# Functions
-anon = fn x, y, z ->
- fn(a, b, c) ->
- &(x + y - z * a / &1 + b + div(&2, c))
- end
-end
-
-&Set.put(&1, &2) ; & Set.put(&1, &2) ; &( Set.put(&1, &1) )
-
-# Function calls
-anon.(1, 2, 3); self; hd([1,2,3])
-Kernel.spawn(fn -> :ok end)
-IO.ANSI.black
-
-# Control flow
-if :this do
- :that
-else
- :otherwise
-end
-
-pid = self
-receive do
- {:EXIT, _} -> :done
- {^pid, :_} -> nil
- after 100 -> :no_luck
-end
-
-case __ENV__.line do
- x when is_integer(x) -> x
- x when x in 1..12 -> -x
-end
-
-cond do
- false -> "too bad"
- 4 > 5 -> "oops"
- true -> nil
-end
-
-# Lexical scope modifiers
-import Kernel, except: [spawn: 1, +: 2, /: 2, Unless: 2]
-alias Long.Module.Name, as: N0men123_and4
-use Bitwise
-
-4 &&& 5
-2 <<< 3
-
-# Protocols
-defprotocol Useless do
- def func1(this)
- def func2(that)
-end
-
-defimpl Useless, for: Atom do
-end
-
-# Exceptions
-defmodule NotAnError do
- defexception [:message]
-end
-
-raise NotAnError, message: "This is not an error"