# Difference between revisions of "HaskellWiki:Syntax highlighting/Breakage"

DavidHouse (talk | contribs) |
DavidHouse (talk | contribs) |
||

Line 75: | Line 75: | ||

<haskell>Ab || a</haskell> |
<haskell>Ab || a</haskell> |
||

+ | <haskell>a || Ab</haskell> |
||

<haskell>Ab || 'a'</haskell> |
<haskell>Ab || 'a'</haskell> |
||

+ | <haskell>'a' || Ab</haskell> |
||

+ | <haskell>Ab || "a"</haskell> |
||

<haskell>"a" || Ab</haskell> |
<haskell>"a" || Ab</haskell> |

## Revision as of 13:29, 10 June 2006

This page is an attempt to find a minimal criminal for the bugs in GeSHi, the syntax highlighter that powers <haskell> and <hask> on the Haskell wiki.

```
x == '-' || True
```

That breaks.

```
x :: String
x = map toUpper "hello"
```

Subsequent <haskell> blocks seem to independant of the breakages.

```
False || True
```

Looks like the (||) operator is causing the problems.

```
a || b
```

However, that works. Perhaps it only breaks when using literals?

```
'a' || 'b'
```

No, characters work too.

```
'a' || True
```

```
True || 'a'
```

```
5 || 'a'
```

```
'a' || 5
```

```
5 || True
```

```
True || 5
```

Any kind of attempt to mix literals of different types breaks.

```
'a' || 'b' -- chars work
```

```
"a" || "b" -- strings work
```

I think any number or constructor on either side of the || makes it break.

```
f 5 || g 6
```

```
f 'a' || g 6
```

Function application with numbers fails too.

Mixing "a", 'a', or a on one side and a function taking the same on the other works:

```
"a" || isDigit 'a'
```

However, with a numeric argument, it's wrong:

```
"a" || isDigit 5
```

Possible counterexample to 'constructors don't work':

```
a || A
```

Specifically, if they have two or more letters, they seem to fail:

```
a || Ab
```

More evidence:

```
Ab || a
```

```
a || Ab
```

```
Ab || 'a'
```

```
'a' || Ab
```

```
Ab || "a"
```

```
"a" || Ab
```