# Prolog

To use this language, use the class "language-prolog".

## Comments

    % This is a comment
    /* This is a
    multi-line comment */

## Numbers

    42
    3.1415

## Strings

    "This is a string."
    "This is a string \
    on multiple lines."
    "A string with \"quotes\" in it."
    "Another string with ""quotes"" in it."

## Example

    :- dynamic fibo/2.
    fibo(0, 1). fibo(1, 1).
    fibo(N, F) :-
    N >= 2, N1 is N - 1, N2 is N - 2,
    fibo(N1, F1), fibo(N2, F2), F is F1 + F2,
    assert(fibo(N,F):-!). % assert as first clause

## Known failures

There are certain edge cases where Prism will fail. There are always such cases in every regex-based syntax highlighter. However, Prism dares to be open and honest about them. If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug.

### Comment-like substrings

    "foo % bar"

### % inside a quoted atom

    'foo % bar'

### Null-ary predicates are not highlighted

    halt.
    trace.

    :- if(test1).
    section_1.
    :- elif(test2).
    section_2.
    :- elif(test3).
    section_3.
    :- else.
    section_else.
    :- endif.