mirror of
https://github.com/sharkdp/bat.git
synced 2025-03-15 15:18:45 +00:00
Add Prolog Syntax Highlighting
This commit is contained in:
parent
e7a1d14c76
commit
edb2342c24
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -260,3 +260,6 @@
|
|||||||
[submodule "assets/syntaxes/02_Extra/vscode-wgsl"]
|
[submodule "assets/syntaxes/02_Extra/vscode-wgsl"]
|
||||||
path = assets/syntaxes/02_Extra/vscode-wgsl
|
path = assets/syntaxes/02_Extra/vscode-wgsl
|
||||||
url = https://github.com/PolyMeilex/vscode-wgsl.git
|
url = https://github.com/PolyMeilex/vscode-wgsl.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Prolog"]
|
||||||
|
path = assets/syntaxes/02_Extra/Prolog
|
||||||
|
url = https://github.com/alnkpa/sublimeprolog
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
- Added auto detect syntax for `.jsonc` #2795 (@mxaddict)
|
- Added auto detect syntax for `.jsonc` #2795 (@mxaddict)
|
||||||
- Added auto detect syntax for `.aws/{config,credentials}` #2795 (@mxaddict)
|
- Added auto detect syntax for `.aws/{config,credentials}` #2795 (@mxaddict)
|
||||||
- Add syntax mapping for Wireguard config #2874 (@cyqsimon)
|
- Add syntax mapping for Wireguard config #2874 (@cyqsimon)
|
||||||
|
- Add Prolog syntax, see #2848 (@laalsaas)
|
||||||
|
|
||||||
## Themes
|
## Themes
|
||||||
|
|
||||||
|
1
assets/syntaxes/02_Extra/Prolog
vendored
Submodule
1
assets/syntaxes/02_Extra/Prolog
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 9e8e142e55557465511338d5b26ca585cb729310
|
137
assets/syntaxes/02_Extra/Prolog.sublime-syntax
vendored
Normal file
137
assets/syntaxes/02_Extra/Prolog.sublime-syntax
vendored
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: SWI-Prolog
|
||||||
|
comment: This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
file_extensions:
|
||||||
|
- pro
|
||||||
|
- prolog
|
||||||
|
- swiplrc
|
||||||
|
scope: source.prolog
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- include: comments
|
||||||
|
- match: (?<=:-)\s*
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.clause.body.prolog
|
||||||
|
- match: (\.)
|
||||||
|
captures:
|
||||||
|
1: keyword.control.clause.bodyend.prolog
|
||||||
|
pop: true
|
||||||
|
- include: comments
|
||||||
|
- include: builtin
|
||||||
|
- include: controlandkeywords
|
||||||
|
- include: atom
|
||||||
|
- include: variable
|
||||||
|
- include: constants
|
||||||
|
- match: .
|
||||||
|
scope: meta.clause.body.prolog
|
||||||
|
- match: '^\s*([a-z][a-zA-Z0-9_]*)(\(?)(?=.*:-.*)'
|
||||||
|
captures:
|
||||||
|
1: entity.name.function.clause.prolog
|
||||||
|
2: punctuation.definition.parameters.begin
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.clause.head.prolog
|
||||||
|
- match: ((\)?))\s*(:-)
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.parameters.end
|
||||||
|
3: keyword.control.clause.bodybegin.prolog
|
||||||
|
pop: true
|
||||||
|
- include: atom
|
||||||
|
- include: variable
|
||||||
|
- include: constants
|
||||||
|
- match: '^\s*([a-z][a-zA-Z0-9_]*)(\(?)(?=.*-->.*)'
|
||||||
|
captures:
|
||||||
|
1: entity.name.function.dcg.prolog
|
||||||
|
2: punctuation.definition.parameters.begin
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.dcg.head.prolog
|
||||||
|
- match: ((\)?))\s*(-->)
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.parameters.end
|
||||||
|
3: keyword.control.dcg.bodybegin.prolog
|
||||||
|
pop: true
|
||||||
|
- include: atom
|
||||||
|
- include: variable
|
||||||
|
- include: constants
|
||||||
|
- match: (?<=-->)\s*
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.dcg.body.prolog
|
||||||
|
- match: (\.)
|
||||||
|
captures:
|
||||||
|
1: keyword.control.dcg.bodyend.prolog
|
||||||
|
pop: true
|
||||||
|
- include: comments
|
||||||
|
- include: controlandkeywords
|
||||||
|
- include: atom
|
||||||
|
- include: variable
|
||||||
|
- include: constants
|
||||||
|
- match: .
|
||||||
|
scope: meta.dcg.body.prolog
|
||||||
|
- match: '^\s*([a-zA-Z][a-zA-Z0-9_]*)(\(?)(?!.*(:-|-->).*)'
|
||||||
|
captures:
|
||||||
|
1: entity.name.function.fact.prolog
|
||||||
|
2: punctuation.definition.parameters.begin
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.fact.prolog
|
||||||
|
- match: ((\)?))\s*(\.)(?!\d+)
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.parameters.end
|
||||||
|
3: keyword.control.fact.end.prolog
|
||||||
|
pop: true
|
||||||
|
- include: atom
|
||||||
|
- include: variable
|
||||||
|
- include: constants
|
||||||
|
atom:
|
||||||
|
- match: '(?<![a-zA-Z0-9_])[a-z][a-zA-Z0-9_]*(?!\s*\(|[a-zA-Z0-9_])'
|
||||||
|
scope: constant.other.atom.simple.prolog
|
||||||
|
- match: "'.*?'"
|
||||||
|
scope: constant.other.atom.quoted.prolog
|
||||||
|
- match: '\[\]'
|
||||||
|
scope: constant.other.atom.emptylist.prolog
|
||||||
|
builtin:
|
||||||
|
- match: \b(op|findall|write|nl|writeln|fail|use_module|module)\b
|
||||||
|
scope: keyword.other
|
||||||
|
comments:
|
||||||
|
- match: "%.*"
|
||||||
|
scope: comment.line.percent-sign.prolog
|
||||||
|
- match: /\*
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.comment.prolog
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.block.prolog
|
||||||
|
- match: \*/
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.comment.prolog
|
||||||
|
pop: true
|
||||||
|
constants:
|
||||||
|
- match: '(?<![a-zA-Z]|/)(\d+|(\d+\.\d+))'
|
||||||
|
scope: constant.numeric.integer.prolog
|
||||||
|
- match: '".*?"'
|
||||||
|
scope: string.quoted.double.prolog
|
||||||
|
controlandkeywords:
|
||||||
|
- match: (->)
|
||||||
|
captures:
|
||||||
|
1: keyword.control.if.prolog
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.if.prolog
|
||||||
|
- match: (;)
|
||||||
|
captures:
|
||||||
|
1: keyword.control.else.prolog
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- include: builtin
|
||||||
|
- include: comments
|
||||||
|
- include: atom
|
||||||
|
- include: variable
|
||||||
|
- match: .
|
||||||
|
scope: meta.if.body.prolog
|
||||||
|
- match: "!"
|
||||||
|
scope: keyword.control.cut.prolog
|
||||||
|
- match: (\s(is)\s)|=:=|=?\\?=|\\\+|@?>|@?=?<|\+|\*|\-
|
||||||
|
scope: keyword.operator.prolog
|
||||||
|
variable:
|
||||||
|
- match: "(?<![a-zA-Z0-9_])[_A-Z][a-zA-Z0-9_]*"
|
||||||
|
scope: variable.parameter.uppercase.prolog
|
||||||
|
- match: (?<!\w)_
|
||||||
|
scope: variable.language.anonymous.prolog
|
34
tests/syntax-tests/highlighted/Prolog/test.pro
vendored
Normal file
34
tests/syntax-tests/highlighted/Prolog/test.pro
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[38;2;117;113;94m% A formulation of Einstein's Riddle (aka Zebra Puzzle) in Prolog (specifically, SWI-Prolog - see http://www.swi-prolog.org/) as appeared on Life International magazine 17/12/1962[0m
|
||||||
|
[38;2;117;113;94m% Source: https://en.wikipedia.org/wiki/Zebra_Puzzle[0m
|
||||||
|
|
||||||
|
[38;2;117;113;94m% Modelling the problem:[0m
|
||||||
|
[38;2;117;113;94m% - Each house is represented by the predicate house/5[0m
|
||||||
|
[38;2;117;113;94m% - The five houses are modelled as a(n) (ordered) list of house(Color, Nationality, Pet, Beverage, Cigaret) in the variable Houses[0m
|
||||||
|
[38;2;117;113;94m% - The predicate solve/2 for solving the riddle is of the form solve(WaterDrinker, ZebraOwner) where WaterDrinker is the nationality of the person who drinks water and ZebraOwner the nationality of the person owning a zebra as a pet[0m
|
||||||
|
|
||||||
|
[38;2;117;113;94m% Expected solution: if the problem is modelled correctly by this program then the only solution set should be:[0m
|
||||||
|
[38;2;117;113;94m% WaterDrinker = norwegian, ZebraOwner = japanese.[0m
|
||||||
|
|
||||||
|
[38;2;117;113;94m% adjacent/3 - A helper function for expressing the "directly next to" relation in a list[0m
|
||||||
|
[38;2;117;113;94m% adjacent(A, B, List) means that either A is directly left of B in List or A is directly right of B in List[0m
|
||||||
|
[38;2;166;226;46madjacent[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mA[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mB[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mList[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m:-[0m[38;2;248;248;242m [0m[38;2;248;248;242mn[0m[38;2;248;248;242me[0m[38;2;248;248;242mx[0m[38;2;248;248;242mt[0m[38;2;248;248;242mt[0m[38;2;248;248;242mo[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mA[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mB[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mList[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;248;248;242mn[0m[38;2;248;248;242me[0m[38;2;248;248;242mx[0m[38;2;248;248;242mt[0m[38;2;248;248;242mt[0m[38;2;248;248;242mo[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mB[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mA[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mList[0m[38;2;248;248;242m)[0m[38;2;249;38;114m.[0m
|
||||||
|
|
||||||
|
[38;2;117;113;94m% solve/2 - The main predicate for solving the puzzle[0m
|
||||||
|
[38;2;166;226;46msolve[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mWaterDrinker[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mZebraOwner[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m:-[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242ml[0m[38;2;248;248;242me[0m[38;2;248;248;242mn[0m[38;2;248;248;242mg[0m[38;2;248;248;242mt[0m[38;2;248;248;242mh[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m5[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 1. There are five houses.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[38;2;190;132;255mred[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255menglish[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 2. The Englishman lives in the red house.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mspanish[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mdog[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 3. The Spaniard owns the dog.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[38;2;190;132;255mgreen[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mcoffee[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 4. Coffee is drunk in the green house.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mukrainian[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mtea[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 5. The Ukrainian drinks tea.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mn[0m[38;2;248;248;242me[0m[38;2;248;248;242mx[0m[38;2;248;248;242mt[0m[38;2;248;248;242mt[0m[38;2;248;248;242mo[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[38;2;190;132;255mivory[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[38;2;190;132;255mgreen[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 6. The green house is immediately to the right of the ivory house.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255msnail[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mold_gold[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 7. The Old Gold smoker owns snails.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[38;2;190;132;255myellow[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mkools[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 8. Kools are smoked in the yellow house.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mn[0m[38;2;248;248;242mt[0m[38;2;248;248;242mh[0m[38;2;248;248;242m1[0m[38;2;248;248;242m([0m[38;2;190;132;255m3[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mmilk[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 9. Milk is drunk in the middle house.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mn[0m[38;2;248;248;242mt[0m[38;2;248;248;242mh[0m[38;2;248;248;242m1[0m[38;2;248;248;242m([0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mnorwegian[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 10. The Norwegian lives in the first house.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242ma[0m[38;2;248;248;242md[0m[38;2;248;248;242mj[0m[38;2;248;248;242ma[0m[38;2;248;248;242mc[0m[38;2;248;248;242me[0m[38;2;248;248;242mn[0m[38;2;248;248;242mt[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mchesterfields[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mfox[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;117;113;94m% 11. The man who smokes Chesterfields lives in the house next to the man with the fox.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242ma[0m[38;2;248;248;242md[0m[38;2;248;248;242mj[0m[38;2;248;248;242ma[0m[38;2;248;248;242mc[0m[38;2;248;248;242me[0m[38;2;248;248;242mn[0m[38;2;248;248;242mt[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mkools[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mhorse[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 12. Kools are smoked in the house next to the house where the horse is kept.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255morange_juice[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mlucky_strike[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 13. The Lucky Strike smoker drinks orange juice.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mjapanese[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mparliaments[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 14. The Japanese smokes Parliaments.[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242ma[0m[38;2;248;248;242md[0m[38;2;248;248;242mj[0m[38;2;248;248;242ma[0m[38;2;248;248;242mc[0m[38;2;248;248;242me[0m[38;2;248;248;242mn[0m[38;2;248;248;242mt[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mnorwegian[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[38;2;190;132;255mblue[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% 15. The Norwegian lives next to the blue house[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mWaterDrinker[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mwater[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;117;113;94m% Who (WaterDrinker) drinks water?[0m
|
||||||
|
[38;2;248;248;242m [0m[38;2;248;248;242m [0m[38;2;248;248;242mm[0m[38;2;248;248;242me[0m[38;2;248;248;242mm[0m[38;2;248;248;242mb[0m[38;2;248;248;242me[0m[38;2;248;248;242mr[0m[38;2;248;248;242m([0m[38;2;248;248;242mh[0m[38;2;248;248;242mo[0m[38;2;248;248;242mu[0m[38;2;248;248;242ms[0m[38;2;248;248;242me[0m[38;2;248;248;242m([0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mZebraOwner[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255mzebra[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[3;38;2;253;151;31mHouses[0m[38;2;248;248;242m)[0m[38;2;249;38;114m.[0m[38;2;248;248;242m [0m[38;2;117;113;94m% Who (ZebraOwner) owns the zebra?[0m
|
34
tests/syntax-tests/source/Prolog/test.pro
vendored
Normal file
34
tests/syntax-tests/source/Prolog/test.pro
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
% A formulation of Einstein's Riddle (aka Zebra Puzzle) in Prolog (specifically, SWI-Prolog - see http://www.swi-prolog.org/) as appeared on Life International magazine 17/12/1962
|
||||||
|
% Source: https://en.wikipedia.org/wiki/Zebra_Puzzle
|
||||||
|
|
||||||
|
% Modelling the problem:
|
||||||
|
% - Each house is represented by the predicate house/5
|
||||||
|
% - The five houses are modelled as a(n) (ordered) list of house(Color, Nationality, Pet, Beverage, Cigaret) in the variable Houses
|
||||||
|
% - The predicate solve/2 for solving the riddle is of the form solve(WaterDrinker, ZebraOwner) where WaterDrinker is the nationality of the person who drinks water and ZebraOwner the nationality of the person owning a zebra as a pet
|
||||||
|
|
||||||
|
% Expected solution: if the problem is modelled correctly by this program then the only solution set should be:
|
||||||
|
% WaterDrinker = norwegian, ZebraOwner = japanese.
|
||||||
|
|
||||||
|
% adjacent/3 - A helper function for expressing the "directly next to" relation in a list
|
||||||
|
% adjacent(A, B, List) means that either A is directly left of B in List or A is directly right of B in List
|
||||||
|
adjacent(A, B, List) :- nextto(A, B, List); nextto(B, A, List).
|
||||||
|
|
||||||
|
% solve/2 - The main predicate for solving the puzzle
|
||||||
|
solve(WaterDrinker, ZebraOwner) :-
|
||||||
|
length(Houses, 5), % 1. There are five houses.
|
||||||
|
member(house(red, english, _, _, _), Houses), % 2. The Englishman lives in the red house.
|
||||||
|
member(house(_, spanish, dog, _, _), Houses), % 3. The Spaniard owns the dog.
|
||||||
|
member(house(green, _, _, coffee, _), Houses), % 4. Coffee is drunk in the green house.
|
||||||
|
member(house(_, ukrainian, _, tea, _), Houses), % 5. The Ukrainian drinks tea.
|
||||||
|
nextto(house(ivory, _, _, _, _), house(green, _, _, _, _), Houses), % 6. The green house is immediately to the right of the ivory house.
|
||||||
|
member(house(_, _, snail, _, old_gold), Houses), % 7. The Old Gold smoker owns snails.
|
||||||
|
member(house(yellow, _, _, _, kools), Houses), % 8. Kools are smoked in the yellow house.
|
||||||
|
nth1(3, Houses, house(_, _, _, milk, _)), % 9. Milk is drunk in the middle house.
|
||||||
|
nth1(1, Houses, house(_, norwegian, _, _, _)), % 10. The Norwegian lives in the first house.
|
||||||
|
adjacent(house(_, _, _, _, chesterfields), house(_, _, fox, _, _), Houses), % 11. The man who smokes Chesterfields lives in the house next to the man with the fox.
|
||||||
|
adjacent(house(_, _, _, _, kools), house(_, _, horse, _, _), Houses), % 12. Kools are smoked in the house next to the house where the horse is kept.
|
||||||
|
member(house(_, _, _, orange_juice, lucky_strike), Houses), % 13. The Lucky Strike smoker drinks orange juice.
|
||||||
|
member(house(_, japanese, _, _, parliaments), Houses), % 14. The Japanese smokes Parliaments.
|
||||||
|
adjacent(house(_, norwegian, _, _, _), house(blue, _, _, _, _), Houses), % 15. The Norwegian lives next to the blue house
|
||||||
|
member(house(_, WaterDrinker, _, water, _), Houses), % Who (WaterDrinker) drinks water?
|
||||||
|
member(house(_, ZebraOwner, zebra, _, _), Houses). % Who (ZebraOwner) owns the zebra?
|
Loading…
x
Reference in New Issue
Block a user