Add Idris.

This adds Idris into the mix and uses the text-only parser for now, pending
upstream merging this patch in:
https://bitbucket.org/birkenfeld/pygments-main/pull-request/210/idris-lexer-added-lexer-for-idris/diff

Once that gets merged in, the lexer should change to idris.
This commit is contained in:
Ricky Elrod
2013-10-31 02:06:25 -04:00
parent d5002ef06a
commit 5037dd5add
2 changed files with 49 additions and 0 deletions

View File

@@ -628,6 +628,13 @@ INI:
- .properties
primary_extension: .ini
Idris:
type: programming
lexer: Text only
primary_extension: .idr
extensions:
- .lidr
Inno Setup:
primary_extension: .iss
lexer: Text only

42
samples/Idris/Chars.idr Normal file
View File

@@ -0,0 +1,42 @@
module Prelude.Char
import Builtins
isUpper : Char -> Bool
isUpper x = x >= 'A' && x <= 'Z'
isLower : Char -> Bool
isLower x = x >= 'a' && x <= 'z'
isAlpha : Char -> Bool
isAlpha x = isUpper x || isLower x
isDigit : Char -> Bool
isDigit x = (x >= '0' && x <= '9')
isAlphaNum : Char -> Bool
isAlphaNum x = isDigit x || isAlpha x
isSpace : Char -> Bool
isSpace x = x == ' ' || x == '\t' || x == '\r' ||
x == '\n' || x == '\f' || x == '\v' ||
x == '\xa0'
isNL : Char -> Bool
isNL x = x == '\r' || x == '\n'
toUpper : Char -> Char
toUpper x = if (isLower x)
then (prim__intToChar (prim__charToInt x - 32))
else x
toLower : Char -> Char
toLower x = if (isUpper x)
then (prim__intToChar (prim__charToInt x + 32))
else x
isHexDigit : Char -> Bool
isHexDigit x = elem (toUpper x) hexChars where
hexChars : List Char
hexChars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F']