Merge branch 'tr/diff-words-test'
* tr/diff-words-test: t4034 (diff --word-diff): add a minimum Perl drier test vector t4034 (diff --word-diff): style suggestions userdiff: simplify word-diff safeguard t4034: bulk verify builtin word regex sanity
This commit is contained in:
commit
1bb4abeff7
@ -4,331 +4,307 @@ test_description='word diff colors'
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success setup '
|
||||
cat >pre.simple <<-\EOF
|
||||
h(4)
|
||||
|
||||
git config diff.color.old red &&
|
||||
git config diff.color.new green &&
|
||||
git config diff.color.func magenta
|
||||
a = b + c
|
||||
EOF
|
||||
cat >post.simple <<-\EOF
|
||||
h(4),hh[44]
|
||||
|
||||
'
|
||||
a = b + c
|
||||
|
||||
aa = a
|
||||
|
||||
aeff = aeff * ( aaa )
|
||||
EOF
|
||||
cat >expect.letter-runs-are-words <<-\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
h(4),<GREEN>hh<RESET>[44]
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa<RESET> )
|
||||
EOF
|
||||
cat >expect.non-whitespace-is-word <<-\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
h(4)<GREEN>,hh[44]<RESET>
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa )<RESET>
|
||||
EOF
|
||||
|
||||
word_diff () {
|
||||
test_must_fail git diff --no-index "$@" pre post > output &&
|
||||
test_must_fail git diff --no-index "$@" pre post >output &&
|
||||
test_decode_color <output >output.decrypted &&
|
||||
test_cmp expect output.decrypted
|
||||
}
|
||||
|
||||
cat > pre <<\EOF
|
||||
h(4)
|
||||
test_language_driver () {
|
||||
lang=$1
|
||||
test_expect_success "diff driver '$lang'" '
|
||||
cp "$TEST_DIRECTORY/t4034/'"$lang"'/pre" \
|
||||
"$TEST_DIRECTORY/t4034/'"$lang"'/post" \
|
||||
"$TEST_DIRECTORY/t4034/'"$lang"'/expect" . &&
|
||||
echo "* diff='"$lang"'" >.gitattributes &&
|
||||
word_diff --color-words
|
||||
'
|
||||
}
|
||||
|
||||
a = b + c
|
||||
EOF
|
||||
test_expect_success setup '
|
||||
git config diff.color.old red &&
|
||||
git config diff.color.new green &&
|
||||
git config diff.color.func magenta
|
||||
'
|
||||
|
||||
cat > post <<\EOF
|
||||
h(4),hh[44]
|
||||
|
||||
a = b + c
|
||||
|
||||
aa = a
|
||||
|
||||
aeff = aeff * ( aaa )
|
||||
EOF
|
||||
|
||||
cat > expect <<\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
<RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET>
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa )<RESET>
|
||||
EOF
|
||||
test_expect_success 'set up pre and post with runs of whitespace' '
|
||||
cp pre.simple pre &&
|
||||
cp post.simple post
|
||||
'
|
||||
|
||||
test_expect_success 'word diff with runs of whitespace' '
|
||||
cat >expect <<-\EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
<RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET>
|
||||
|
||||
word_diff --color-words
|
||||
a = b + c<RESET>
|
||||
|
||||
'
|
||||
|
||||
test_expect_success '--word-diff=color' '
|
||||
|
||||
word_diff --word-diff=color
|
||||
|
||||
'
|
||||
|
||||
test_expect_success '--color --word-diff=color' '
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa )<RESET>
|
||||
EOF
|
||||
word_diff --color-words &&
|
||||
word_diff --word-diff=color &&
|
||||
word_diff --color --word-diff=color
|
||||
|
||||
'
|
||||
|
||||
sed 's/#.*$//' > expect <<EOF
|
||||
diff --git a/pre b/post
|
||||
index 330b04f..5ed8eff 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1,3 +1,7 @@
|
||||
-h(4)
|
||||
+h(4),hh[44]
|
||||
~
|
||||
# significant space
|
||||
~
|
||||
a = b + c
|
||||
~
|
||||
~
|
||||
+aa = a
|
||||
~
|
||||
~
|
||||
+aeff = aeff * ( aaa )
|
||||
~
|
||||
EOF
|
||||
|
||||
test_expect_success '--word-diff=porcelain' '
|
||||
|
||||
sed 's/#.*$//' >expect <<-\EOF &&
|
||||
diff --git a/pre b/post
|
||||
index 330b04f..5ed8eff 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1,3 +1,7 @@
|
||||
-h(4)
|
||||
+h(4),hh[44]
|
||||
~
|
||||
# significant space
|
||||
~
|
||||
a = b + c
|
||||
~
|
||||
~
|
||||
+aa = a
|
||||
~
|
||||
~
|
||||
+aeff = aeff * ( aaa )
|
||||
~
|
||||
EOF
|
||||
word_diff --word-diff=porcelain
|
||||
|
||||
'
|
||||
|
||||
cat > expect <<EOF
|
||||
diff --git a/pre b/post
|
||||
index 330b04f..5ed8eff 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1,3 +1,7 @@
|
||||
[-h(4)-]{+h(4),hh[44]+}
|
||||
|
||||
a = b + c
|
||||
|
||||
{+aa = a+}
|
||||
|
||||
{+aeff = aeff * ( aaa )+}
|
||||
EOF
|
||||
|
||||
test_expect_success '--word-diff=plain' '
|
||||
cat >expect <<-\EOF &&
|
||||
diff --git a/pre b/post
|
||||
index 330b04f..5ed8eff 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1,3 +1,7 @@
|
||||
[-h(4)-]{+h(4),hh[44]+}
|
||||
|
||||
word_diff --word-diff=plain
|
||||
a = b + c
|
||||
|
||||
'
|
||||
|
||||
test_expect_success '--word-diff=plain --no-color' '
|
||||
{+aa = a+}
|
||||
|
||||
{+aeff = aeff * ( aaa )+}
|
||||
EOF
|
||||
word_diff --word-diff=plain &&
|
||||
word_diff --word-diff=plain --no-color
|
||||
|
||||
'
|
||||
|
||||
cat > expect <<EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
<RED>[-h(4)-]<RESET><GREEN>{+h(4),hh[44]+}<RESET>
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>{+aa = a+}<RESET>
|
||||
|
||||
<GREEN>{+aeff = aeff * ( aaa )+}<RESET>
|
||||
EOF
|
||||
|
||||
test_expect_success '--word-diff=plain --color' '
|
||||
cat >expect <<-\EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
<RED>[-h(4)-]<RESET><GREEN>{+h(4),hh[44]+}<RESET>
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>{+aa = a+}<RESET>
|
||||
|
||||
<GREEN>{+aeff = aeff * ( aaa )+}<RESET>
|
||||
EOF
|
||||
word_diff --word-diff=plain --color
|
||||
|
||||
'
|
||||
|
||||
cat > expect <<\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
<RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET>
|
||||
<CYAN>@@ -3,0 +4,4 @@<RESET> <RESET><MAGENTA>a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa )<RESET>
|
||||
EOF
|
||||
|
||||
test_expect_success 'word diff without context' '
|
||||
cat >expect <<-\EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
<RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET>
|
||||
<CYAN>@@ -3,0 +4,4 @@<RESET> <RESET><MAGENTA>a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa )<RESET>
|
||||
EOF
|
||||
word_diff --color-words --unified=0
|
||||
|
||||
'
|
||||
|
||||
cat > expect <<\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
h(4),<GREEN>hh<RESET>[44]
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa<RESET> )
|
||||
EOF
|
||||
cp expect expect.letter-runs-are-words
|
||||
|
||||
test_expect_success 'word diff with a regular expression' '
|
||||
|
||||
cp expect.letter-runs-are-words expect &&
|
||||
word_diff --color-words="[a-z]+"
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'set a diff driver' '
|
||||
test_expect_success 'set up a diff driver' '
|
||||
git config diff.testdriver.wordRegex "[^[:space:]]" &&
|
||||
cat <<EOF > .gitattributes
|
||||
pre diff=testdriver
|
||||
post diff=testdriver
|
||||
EOF
|
||||
cat <<-\EOF >.gitattributes
|
||||
pre diff=testdriver
|
||||
post diff=testdriver
|
||||
EOF
|
||||
'
|
||||
|
||||
test_expect_success 'option overrides .gitattributes' '
|
||||
|
||||
cp expect.letter-runs-are-words expect &&
|
||||
word_diff --color-words="[a-z]+"
|
||||
|
||||
'
|
||||
|
||||
cat > expect <<\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
h(4)<GREEN>,hh[44]<RESET>
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa )<RESET>
|
||||
EOF
|
||||
cp expect expect.non-whitespace-is-word
|
||||
|
||||
test_expect_success 'use regex supplied by driver' '
|
||||
|
||||
cp expect.non-whitespace-is-word expect &&
|
||||
word_diff --color-words
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'set diff.wordRegex option' '
|
||||
test_expect_success 'set up diff.wordRegex option' '
|
||||
git config diff.wordRegex "[[:alnum:]]+"
|
||||
'
|
||||
|
||||
cp expect.letter-runs-are-words expect
|
||||
|
||||
test_expect_success 'command-line overrides config' '
|
||||
cp expect.letter-runs-are-words expect &&
|
||||
word_diff --color-words="[a-z]+"
|
||||
'
|
||||
|
||||
cat > expect <<\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
h(4),<GREEN>{+hh+}<RESET>[44]
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>{+aa = a+}<RESET>
|
||||
|
||||
<GREEN>{+aeff = aeff * ( aaa+}<RESET> )
|
||||
EOF
|
||||
|
||||
test_expect_success 'command-line overrides config: --word-diff-regex' '
|
||||
cat >expect <<-\EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
h(4),<GREEN>{+hh+}<RESET>[44]
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>{+aa = a+}<RESET>
|
||||
|
||||
<GREEN>{+aeff = aeff * ( aaa+}<RESET> )
|
||||
EOF
|
||||
word_diff --color --word-diff-regex="[a-z]+"
|
||||
'
|
||||
|
||||
cp expect.non-whitespace-is-word expect
|
||||
|
||||
test_expect_success '.gitattributes override config' '
|
||||
cp expect.non-whitespace-is-word expect &&
|
||||
word_diff --color-words
|
||||
'
|
||||
|
||||
test_expect_success 'remove diff driver regex' '
|
||||
git config --unset diff.testdriver.wordRegex
|
||||
test_expect_success 'setup: remove diff driver regex' '
|
||||
test_might_fail git config --unset diff.testdriver.wordRegex
|
||||
'
|
||||
|
||||
cat > expect <<\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
h(4),<GREEN>hh[44<RESET>]
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa<RESET> )
|
||||
EOF
|
||||
|
||||
test_expect_success 'use configured regex' '
|
||||
cat >expect <<-\EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 330b04f..5ed8eff 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,7 @@<RESET>
|
||||
h(4),<GREEN>hh[44<RESET>]
|
||||
|
||||
a = b + c<RESET>
|
||||
|
||||
<GREEN>aa = a<RESET>
|
||||
|
||||
<GREEN>aeff = aeff * ( aaa<RESET> )
|
||||
EOF
|
||||
word_diff --color-words
|
||||
'
|
||||
|
||||
echo 'aaa (aaa)' > pre
|
||||
echo 'aaa (aaa) aaa' > post
|
||||
|
||||
cat > expect <<\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index c29453b..be22f37 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
aaa (aaa) <GREEN>aaa<RESET>
|
||||
EOF
|
||||
|
||||
test_expect_success 'test parsing words for newline' '
|
||||
|
||||
echo "aaa (aaa)" >pre &&
|
||||
echo "aaa (aaa) aaa" >post &&
|
||||
cat >expect <<-\EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index c29453b..be22f37 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
aaa (aaa) <GREEN>aaa<RESET>
|
||||
EOF
|
||||
word_diff --color-words="a+"
|
||||
|
||||
|
||||
'
|
||||
|
||||
echo '(:' > pre
|
||||
echo '(' > post
|
||||
|
||||
cat > expect <<\EOF
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 289cb9d..2d06f37 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
(<RED>:<RESET>
|
||||
EOF
|
||||
|
||||
test_expect_success 'test when words are only removed at the end' '
|
||||
|
||||
echo "(:" >pre &&
|
||||
echo "(" >post &&
|
||||
cat >expect <<-\EOF &&
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 289cb9d..2d06f37 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1 +1 @@<RESET>
|
||||
(<RED>:<RESET>
|
||||
EOF
|
||||
word_diff --color-words=.
|
||||
|
||||
'
|
||||
|
||||
cat > expect <<\EOF
|
||||
diff --git a/pre b/post
|
||||
index 289cb9d..2d06f37 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1 +1 @@
|
||||
-(:
|
||||
+(
|
||||
EOF
|
||||
|
||||
test_expect_success '--word-diff=none' '
|
||||
|
||||
echo "(:" >pre &&
|
||||
echo "(" >post &&
|
||||
cat >expect <<-\EOF &&
|
||||
diff --git a/pre b/post
|
||||
index 289cb9d..2d06f37 100644
|
||||
--- a/pre
|
||||
+++ b/post
|
||||
@@ -1 +1 @@
|
||||
-(:
|
||||
+(
|
||||
EOF
|
||||
word_diff --word-diff=plain --word-diff=none
|
||||
|
||||
'
|
||||
|
||||
test_language_driver bibtex
|
||||
test_language_driver cpp
|
||||
test_language_driver csharp
|
||||
test_language_driver fortran
|
||||
test_language_driver html
|
||||
test_language_driver java
|
||||
test_language_driver objc
|
||||
test_language_driver pascal
|
||||
test_language_driver perl
|
||||
test_language_driver php
|
||||
test_language_driver python
|
||||
test_language_driver ruby
|
||||
test_language_driver tex
|
||||
|
||||
test_done
|
||||
|
15
t/t4034/bibtex/expect
Normal file
15
t/t4034/bibtex/expect
Normal file
@ -0,0 +1,15 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 95cd55b..ddcba9b 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,9 +1,10 @@<RESET>
|
||||
@article{aldous1987uie,<RESET>
|
||||
title={{Ultimate instability of exponential back-off protocol for acknowledgment-based transmission control of random access communication channels}},<RESET>
|
||||
author={Aldous, <RED>D.<RESET><GREEN>David<RESET>},
|
||||
journal={Information Theory, IEEE Transactions on},<RESET>
|
||||
volume={<RED>33<RESET><GREEN>Bogus.<RESET>},
|
||||
number={<RED>2<RESET><GREEN>4<RESET>},
|
||||
pages={219--223},<RESET>
|
||||
year=<GREEN>1987,<RESET>
|
||||
<GREEN> note={This is in fact a rather funny read since ethernet works well in practice. The<RESET> {<RED>1987<RESET><GREEN>\em pre} reference is the right one, however.<RESET>}<RED>,<RESET>
|
||||
}<RESET>
|
10
t/t4034/bibtex/post
Normal file
10
t/t4034/bibtex/post
Normal file
@ -0,0 +1,10 @@
|
||||
@article{aldous1987uie,
|
||||
title={{Ultimate instability of exponential back-off protocol for acknowledgment-based transmission control of random access communication channels}},
|
||||
author={Aldous, David},
|
||||
journal={Information Theory, IEEE Transactions on},
|
||||
volume={Bogus.},
|
||||
number={4},
|
||||
pages={219--223},
|
||||
year=1987,
|
||||
note={This is in fact a rather funny read since ethernet works well in practice. The {\em pre} reference is the right one, however.}
|
||||
}
|
9
t/t4034/bibtex/pre
Normal file
9
t/t4034/bibtex/pre
Normal file
@ -0,0 +1,9 @@
|
||||
@article{aldous1987uie,
|
||||
title={{Ultimate instability of exponential back-off protocol for acknowledgment-based transmission control of random access communication channels}},
|
||||
author={Aldous, D.},
|
||||
journal={Information Theory, IEEE Transactions on},
|
||||
volume={33},
|
||||
number={2},
|
||||
pages={219--223},
|
||||
year={1987},
|
||||
}
|
36
t/t4034/cpp/expect
Normal file
36
t/t4034/cpp/expect
Normal file
@ -0,0 +1,36 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 23d5c8a..7e8c026 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,19 +1,19 @@<RESET>
|
||||
Foo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <GREEN>bar(x);<RESET> }
|
||||
cout<<"Hello World<RED>!<RESET><GREEN>?<RESET>\n"<<endl;
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>^<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>|<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>||<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>?<RED>b<RESET><GREEN>y<RESET>:z
|
||||
<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>,y
|
||||
<RED>a<RESET><GREEN>x<RESET>::<RED>b<RESET><GREEN>y<RESET>
|
19
t/t4034/cpp/post
Normal file
19
t/t4034/cpp/post
Normal file
@ -0,0 +1,19 @@
|
||||
Foo() : x(0&42) { bar(x); }
|
||||
cout<<"Hello World?\n"<<endl;
|
||||
(1) (-1e10) (0xabcdef) 'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- x*y x&y
|
||||
x*y x/y x%y
|
||||
x+y x-y
|
||||
x<<y x>>y
|
||||
x<y x<=y x>y x>=y
|
||||
x==y x!=y
|
||||
x&y
|
||||
x^y
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
|
||||
x,y
|
||||
x::y
|
19
t/t4034/cpp/pre
Normal file
19
t/t4034/cpp/pre
Normal file
@ -0,0 +1,19 @@
|
||||
Foo():x(0&&1){}
|
||||
cout<<"Hello World!\n"<<endl;
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- a*b a&b
|
||||
a*b a/b a%b
|
||||
a+b a-b
|
||||
a<<b a>>b
|
||||
a<b a<=b a>b a>=b
|
||||
a==b a!=b
|
||||
a&b
|
||||
a^b
|
||||
a|b
|
||||
a&&b
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
||||
a::b
|
35
t/t4034/csharp/expect
Normal file
35
t/t4034/csharp/expect
Normal file
@ -0,0 +1,35 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 9106d63..dd5f421 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,18 +1,18 @@<RESET>
|
||||
Foo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <GREEN>bar(x);<RESET> }
|
||||
cout<<"Hello World<RED>!<RESET><GREEN>?<RESET>\n"<<endl;
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>^<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>|<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>||<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>?<RED>b<RESET><GREEN>y<RESET>:z
|
||||
<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>,y
|
18
t/t4034/csharp/post
Normal file
18
t/t4034/csharp/post
Normal file
@ -0,0 +1,18 @@
|
||||
Foo() : x(0&42) { bar(x); }
|
||||
cout<<"Hello World?\n"<<endl;
|
||||
(1) (-1e10) (0xabcdef) 'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- x*y x&y
|
||||
x*y x/y x%y
|
||||
x+y x-y
|
||||
x<<y x>>y
|
||||
x<y x<=y x>y x>=y
|
||||
x==y x!=y
|
||||
x&y
|
||||
x^y
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
|
||||
x,y
|
18
t/t4034/csharp/pre
Normal file
18
t/t4034/csharp/pre
Normal file
@ -0,0 +1,18 @@
|
||||
Foo():x(0&&1){}
|
||||
cout<<"Hello World!\n"<<endl;
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- a*b a&b
|
||||
a*b a/b a%b
|
||||
a+b a-b
|
||||
a<<b a>>b
|
||||
a<b a<=b a>b a>=b
|
||||
a==b a!=b
|
||||
a&b
|
||||
a^b
|
||||
a|b
|
||||
a&&b
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
10
t/t4034/fortran/expect
Normal file
10
t/t4034/fortran/expect
Normal file
@ -0,0 +1,10 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 87f0d0b..d308da2 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,5 +1,5 @@<RESET>
|
||||
print *, "Hello World<RED>!<RESET><GREEN>?<RESET>"
|
||||
|
||||
DO10I = 1,10<RESET>
|
||||
<RED>DO10I<RESET><GREEN>DO 10 I<RESET> = 1,10
|
||||
<RED>DO10I<RESET><GREEN>DO 1 0 I<RESET> = 1,10
|
5
t/t4034/fortran/post
Normal file
5
t/t4034/fortran/post
Normal file
@ -0,0 +1,5 @@
|
||||
print *, "Hello World?"
|
||||
|
||||
DO10I = 1,10
|
||||
DO 10 I = 1,10
|
||||
DO 1 0 I = 1,10
|
5
t/t4034/fortran/pre
Normal file
5
t/t4034/fortran/pre
Normal file
@ -0,0 +1,5 @@
|
||||
print *, "Hello World!"
|
||||
|
||||
DO10I = 1,10
|
||||
DO10I = 1,10
|
||||
DO10I = 1,10
|
8
t/t4034/html/expect
Normal file
8
t/t4034/html/expect
Normal file
@ -0,0 +1,8 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 8ca4aea..46921e5 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,3 +1,3 @@<RESET>
|
||||
<tag <GREEN>newattr="newvalue"<RESET>><GREEN>added<RESET> content</tag>
|
||||
<tag attr=<RED>"value"<RESET><GREEN>"newvalue"<RESET>><RED>content<RESET><GREEN>changed<RESET></tag>
|
||||
<<RED>tag<RESET><GREEN>newtag<RESET>>content <RED>&entity;<RESET><GREEN>&newentity;<RESET><<RED>/tag<RESET><GREEN>/newtag<RESET>>
|
3
t/t4034/html/post
Normal file
3
t/t4034/html/post
Normal file
@ -0,0 +1,3 @@
|
||||
<tag newattr="newvalue">added content</tag>
|
||||
<tag attr="newvalue">changed</tag>
|
||||
<newtag>content &newentity;</newtag>
|
3
t/t4034/html/pre
Normal file
3
t/t4034/html/pre
Normal file
@ -0,0 +1,3 @@
|
||||
<tag>content</tag>
|
||||
<tag attr="value">content</tag>
|
||||
<tag>content &entity;</tag>
|
36
t/t4034/java/expect
Normal file
36
t/t4034/java/expect
Normal file
@ -0,0 +1,36 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 23d5c8a..7e8c026 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,19 +1,19 @@<RESET>
|
||||
Foo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <GREEN>bar(x);<RESET> }
|
||||
cout<<"Hello World<RED>!<RESET><GREEN>?<RESET>\n"<<endl;
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>^<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>|<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>||<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>?<RED>b<RESET><GREEN>y<RESET>:z
|
||||
<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>,y
|
||||
<RED>a<RESET><GREEN>x<RESET>::<RED>b<RESET><GREEN>y<RESET>
|
19
t/t4034/java/post
Normal file
19
t/t4034/java/post
Normal file
@ -0,0 +1,19 @@
|
||||
Foo() : x(0&42) { bar(x); }
|
||||
cout<<"Hello World?\n"<<endl;
|
||||
(1) (-1e10) (0xabcdef) 'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- x*y x&y
|
||||
x*y x/y x%y
|
||||
x+y x-y
|
||||
x<<y x>>y
|
||||
x<y x<=y x>y x>=y
|
||||
x==y x!=y
|
||||
x&y
|
||||
x^y
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
|
||||
x,y
|
||||
x::y
|
19
t/t4034/java/pre
Normal file
19
t/t4034/java/pre
Normal file
@ -0,0 +1,19 @@
|
||||
Foo():x(0&&1){}
|
||||
cout<<"Hello World!\n"<<endl;
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- a*b a&b
|
||||
a*b a/b a%b
|
||||
a+b a-b
|
||||
a<<b a>>b
|
||||
a<b a<=b a>b a>=b
|
||||
a==b a!=b
|
||||
a&b
|
||||
a^b
|
||||
a|b
|
||||
a&&b
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
||||
a::b
|
35
t/t4034/objc/expect
Normal file
35
t/t4034/objc/expect
Normal file
@ -0,0 +1,35 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 9106d63..dd5f421 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,18 +1,18 @@<RESET>
|
||||
Foo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <GREEN>bar(x);<RESET> }
|
||||
cout<<"Hello World<RED>!<RESET><GREEN>?<RESET>\n"<<endl;
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>^<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>|<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>||<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>?<RED>b<RESET><GREEN>y<RESET>:z
|
||||
<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>,y
|
18
t/t4034/objc/post
Normal file
18
t/t4034/objc/post
Normal file
@ -0,0 +1,18 @@
|
||||
Foo() : x(0&42) { bar(x); }
|
||||
cout<<"Hello World?\n"<<endl;
|
||||
(1) (-1e10) (0xabcdef) 'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- x*y x&y
|
||||
x*y x/y x%y
|
||||
x+y x-y
|
||||
x<<y x>>y
|
||||
x<y x<=y x>y x>=y
|
||||
x==y x!=y
|
||||
x&y
|
||||
x^y
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
|
||||
x,y
|
18
t/t4034/objc/pre
Normal file
18
t/t4034/objc/pre
Normal file
@ -0,0 +1,18 @@
|
||||
Foo():x(0&&1){}
|
||||
cout<<"Hello World!\n"<<endl;
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- a*b a&b
|
||||
a*b a/b a%b
|
||||
a+b a-b
|
||||
a<<b a>>b
|
||||
a<b a<=b a>b a>=b
|
||||
a==b a!=b
|
||||
a&b
|
||||
a^b
|
||||
a|b
|
||||
a&&b
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
35
t/t4034/pascal/expect
Normal file
35
t/t4034/pascal/expect
Normal file
@ -0,0 +1,35 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 077046c..8865e6b 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,18 +1,18 @@<RESET>
|
||||
writeln("Hello World<RED>!<RESET><GREEN>?<RESET>");
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>^<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>|<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>||<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>?<RED>b<RESET><GREEN>y<RESET>:z
|
||||
<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>,y
|
||||
<RED>a<RESET><GREEN>x<RESET>::<RED>b<RESET><GREEN>y<RESET>
|
18
t/t4034/pascal/post
Normal file
18
t/t4034/pascal/post
Normal file
@ -0,0 +1,18 @@
|
||||
writeln("Hello World?");
|
||||
(1) (-1e10) (0xabcdef) 'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- x*y x&y
|
||||
x*y x/y x%y
|
||||
x+y x-y
|
||||
x<<y x>>y
|
||||
x<y x<=y x>y x>=y
|
||||
x==y x!=y
|
||||
x&y
|
||||
x^y
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
|
||||
x,y
|
||||
x::y
|
18
t/t4034/pascal/pre
Normal file
18
t/t4034/pascal/pre
Normal file
@ -0,0 +1,18 @@
|
||||
writeln("Hello World!");
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- a*b a&b
|
||||
a*b a/b a%b
|
||||
a+b a-b
|
||||
a<<b a>>b
|
||||
a<b a<=b a>b a>=b
|
||||
a==b a!=b
|
||||
a&b
|
||||
a^b
|
||||
a|b
|
||||
a&&b
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
||||
a::b
|
13
t/t4034/perl/expect
Normal file
13
t/t4034/perl/expect
Normal file
@ -0,0 +1,13 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index f6610d3..e8b72ef 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -4,8 +4,8 @@<RESET>
|
||||
|
||||
package Frotz;<RESET>
|
||||
sub new {<RESET>
|
||||
my <GREEN>(<RESET>$class<GREEN>, %opts)<RESET> = <RED>shift<RESET><GREEN>@_<RESET>;
|
||||
return bless { <GREEN>xyzzy => "nitfol", %opts<RESET> }, $class;
|
||||
}<RESET>
|
||||
|
||||
__END__<RESET>
|
22
t/t4034/perl/post
Normal file
22
t/t4034/perl/post
Normal file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
|
||||
package Frotz;
|
||||
sub new {
|
||||
my ($class, %opts) = @_;
|
||||
return bless { xyzzy => "nitfol", %opts }, $class;
|
||||
}
|
||||
|
||||
__END__
|
||||
=head1 NAME
|
||||
|
||||
frotz - Frotz
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use frotz;
|
||||
|
||||
$nitfol = new Frotz();
|
||||
|
||||
=cut
|
22
t/t4034/perl/pre
Normal file
22
t/t4034/perl/pre
Normal file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
|
||||
package Frotz;
|
||||
sub new {
|
||||
my $class = shift;
|
||||
return bless {}, $class;
|
||||
}
|
||||
|
||||
__END__
|
||||
=head1 NAME
|
||||
|
||||
frotz - Frotz
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use frotz;
|
||||
|
||||
$nitfol = new Frotz();
|
||||
|
||||
=cut
|
35
t/t4034/php/expect
Normal file
35
t/t4034/php/expect
Normal file
@ -0,0 +1,35 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index cf6e06b..4420a49 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,18 +1,18 @@<RESET>
|
||||
<GREEN>(<RESET>$var<GREEN>)<RESET> $ var
|
||||
<?="Hello World<RED>!<RESET><GREEN>?<RESET>"?>
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>^<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>|<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>||<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>?<RED>b<RESET><GREEN>y<RESET>:z
|
||||
<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>,y
|
18
t/t4034/php/post
Normal file
18
t/t4034/php/post
Normal file
@ -0,0 +1,18 @@
|
||||
($var) $ var
|
||||
<?="Hello World?"?>
|
||||
(1) (-1e10) (0xabcdef) 'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- x*y x&y
|
||||
x*y x/y x%y
|
||||
x+y x-y
|
||||
x<<y x>>y
|
||||
x<y x<=y x>y x>=y
|
||||
x==y x!=y
|
||||
x&y
|
||||
x^y
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
|
||||
x,y
|
18
t/t4034/php/pre
Normal file
18
t/t4034/php/pre
Normal file
@ -0,0 +1,18 @@
|
||||
$var $var
|
||||
<?= "Hello World!" ?>
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- a*b a&b
|
||||
a*b a/b a%b
|
||||
a+b a-b
|
||||
a<<b a>>b
|
||||
a<b a<=b a>b a>=b
|
||||
a==b a!=b
|
||||
a&b
|
||||
a^b
|
||||
a|b
|
||||
a&&b
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
34
t/t4034/python/expect
Normal file
34
t/t4034/python/expect
Normal file
@ -0,0 +1,34 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 438f776..68baf34 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,17 +1,17 @@<RESET>
|
||||
print<RED>u<RESET> "Hello World<RED>!<RESET><GREEN>?<RESET>\n"<GREEN>; print<RESET>
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>) u<RESET>'<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>^<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>|<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>||<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>?<RED>b<RESET><GREEN>y<RESET>:z
|
||||
<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>,y
|
17
t/t4034/python/post
Normal file
17
t/t4034/python/post
Normal file
@ -0,0 +1,17 @@
|
||||
print "Hello World?\n"; print
|
||||
(1) (-1e10) (0xabcdef) u'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- x*y x&y
|
||||
x*y x/y x%y
|
||||
x+y x-y
|
||||
x<<y x>>y
|
||||
x<y x<=y x>y x>=y
|
||||
x==y x!=y
|
||||
x&y
|
||||
x^y
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
|
||||
x,y
|
17
t/t4034/python/pre
Normal file
17
t/t4034/python/pre
Normal file
@ -0,0 +1,17 @@
|
||||
print u"Hello World!\n"
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- a*b a&b
|
||||
a*b a/b a%b
|
||||
a+b a-b
|
||||
a<<b a>>b
|
||||
a<b a<=b a>b a>=b
|
||||
a==b a!=b
|
||||
a&b
|
||||
a^b
|
||||
a|b
|
||||
a&&b
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
34
t/t4034/ruby/expect
Normal file
34
t/t4034/ruby/expect
Normal file
@ -0,0 +1,34 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 30ed9a1..7678f14 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,17 +1,17 @@<RESET>
|
||||
10.downto(1) {|<RED>x<RESET><GREEN>y<RESET>| puts <RED>x<RESET><GREEN>y<RESET>}
|
||||
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
|
||||
[<RED>a<RESET><GREEN>x<RESET>] <RED>a<RESET><GREEN>x<RESET>-><RED>b a<RESET><GREEN>y x<RESET>.<RED>b<RESET><GREEN>y<RESET>
|
||||
!<RED>a<RESET><GREEN>x<RESET> ~<RED>a a<RESET><GREEN>x x<RESET>++ <RED>a<RESET><GREEN>x<RESET>-- <RED>a<RESET><GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>*<RED>b a<RESET><GREEN>y x<RESET>/<RED>b a<RESET><GREEN>y x<RESET>%<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>+<RED>b a<RESET><GREEN>y x<RESET>-<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<<RED>b a<RESET><GREEN>y x<RESET>>><RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET><<RED>b a<RESET><GREEN>y x<RESET><=<RED>b a<RESET><GREEN>y x<RESET>><RED>b a<RESET><GREEN>y x<RESET>>=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>==<RED>b a<RESET><GREEN>y x<RESET>!=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>^<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>|<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>&&<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>||<RED>b<RESET>
|
||||
<RED>a?b<RESET><GREEN>y<RESET>
|
||||
<GREEN>x?y<RESET>:z
|
||||
<RED>a<RESET><GREEN>x<RESET>=<RED>b a<RESET><GREEN>y x<RESET>+=<RED>b a<RESET><GREEN>y x<RESET>-=<RED>b a<RESET><GREEN>y x<RESET>*=<RED>b a<RESET><GREEN>y x<RESET>/=<RED>b a<RESET><GREEN>y x<RESET>%=<RED>b a<RESET><GREEN>y x<RESET><<=<RED>b a<RESET><GREEN>y x<RESET>>>=<RED>b a<RESET><GREEN>y x<RESET>&=<RED>b a<RESET><GREEN>y x<RESET>^=<RED>b a<RESET><GREEN>y x<RESET>|=<RED>b<RESET>
|
||||
<RED>a<RESET><GREEN>y<RESET>
|
||||
<GREEN>x<RESET>,y
|
17
t/t4034/ruby/post
Normal file
17
t/t4034/ruby/post
Normal file
@ -0,0 +1,17 @@
|
||||
10.downto(1) {|y| puts y}
|
||||
(1) (-1e10) (0xabcdef) 'y'
|
||||
[x] x->y x.y
|
||||
!x ~x x++ x-- x*y x&y
|
||||
x*y x/y x%y
|
||||
x+y x-y
|
||||
x<<y x>>y
|
||||
x<y x<=y x>y x>=y
|
||||
x==y x!=y
|
||||
x&y
|
||||
x^y
|
||||
x|y
|
||||
x&&y
|
||||
x||y
|
||||
x?y:z
|
||||
x=y x+=y x-=y x*=y x/=y x%=y x<<=y x>>=y x&=y x^=y x|=y
|
||||
x,y
|
17
t/t4034/ruby/pre
Normal file
17
t/t4034/ruby/pre
Normal file
@ -0,0 +1,17 @@
|
||||
10.downto(1) {|x| puts x}
|
||||
1 -1e10 0xabcdef 'x'
|
||||
[a] a->b a.b
|
||||
!a ~a a++ a-- a*b a&b
|
||||
a*b a/b a%b
|
||||
a+b a-b
|
||||
a<<b a>>b
|
||||
a<b a<=b a>b a>=b
|
||||
a==b a!=b
|
||||
a&b
|
||||
a^b
|
||||
a|b
|
||||
a&&b
|
||||
a||b
|
||||
a?b:z
|
||||
a=b a+=b a-=b a*=b a/=b a%=b a<<=b a>>=b a&=b a^=b a|=b
|
||||
a,y
|
9
t/t4034/tex/expect
Normal file
9
t/t4034/tex/expect
Normal file
@ -0,0 +1,9 @@
|
||||
<BOLD>diff --git a/pre b/post<RESET>
|
||||
<BOLD>index 2b2dfcb..65cab61 100644<RESET>
|
||||
<BOLD>--- a/pre<RESET>
|
||||
<BOLD>+++ b/post<RESET>
|
||||
<CYAN>@@ -1,4 +1,4 @@<RESET>
|
||||
\section{Something <GREEN>new<RESET>}
|
||||
<RED>\emph<RESET><GREEN>\textbf<RESET>{Macro style}
|
||||
{<RED>\em<RESET><GREEN>\bfseries<RESET> State toggle style}
|
||||
\\[<RED>1em<RESET><GREEN>1cm<RESET>]
|
4
t/t4034/tex/post
Normal file
4
t/t4034/tex/post
Normal file
@ -0,0 +1,4 @@
|
||||
\section{Something new}
|
||||
\textbf{Macro style}
|
||||
{\bfseries State toggle style}
|
||||
\\[1cm]
|
4
t/t4034/tex/pre
Normal file
4
t/t4034/tex/pre
Normal file
@ -0,0 +1,4 @@
|
||||
\section{Something}
|
||||
\emph{Macro style}
|
||||
{\em State toggle style}
|
||||
\\[1em]
|
40
userdiff.c
40
userdiff.c
@ -8,9 +8,11 @@ static int ndrivers;
|
||||
static int drivers_alloc;
|
||||
|
||||
#define PATTERNS(name, pattern, word_regex) \
|
||||
{ name, NULL, -1, { pattern, REG_EXTENDED }, word_regex }
|
||||
{ name, NULL, -1, { pattern, REG_EXTENDED }, \
|
||||
word_regex "|[^[:space:]]|[\xc0-\xff][\x80-\xbf]+" }
|
||||
#define IPATTERN(name, pattern, word_regex) \
|
||||
{ name, NULL, -1, { pattern, REG_EXTENDED | REG_ICASE }, word_regex }
|
||||
{ name, NULL, -1, { pattern, REG_EXTENDED | REG_ICASE }, \
|
||||
word_regex "|[^[:space:]]|[\xc0-\xff][\x80-\xbf]+" }
|
||||
static struct userdiff_driver builtin_drivers[] = {
|
||||
IPATTERN("fortran",
|
||||
"!^([C*]|[ \t]*!)\n"
|
||||
@ -24,10 +26,9 @@ IPATTERN("fortran",
|
||||
* Don't worry about format statements without leading digits since
|
||||
* they would have been matched above as a variable anyway. */
|
||||
"|[-+]?[0-9.]+([AaIiDdEeFfLlTtXx][Ss]?[-+]?[0-9.]*)?(_[a-zA-Z0-9][a-zA-Z0-9_]*)?"
|
||||
"|//|\\*\\*|::|[/<>=]="
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|//|\\*\\*|::|[/<>=]="),
|
||||
PATTERNS("html", "^[ \t]*(<[Hh][1-6][ \t].*>.*)$",
|
||||
"[^<>= \t]+|[^[:space:]]|[\x80-\xff]+"),
|
||||
"[^<>= \t]+"),
|
||||
PATTERNS("java",
|
||||
"!^[ \t]*(catch|do|for|if|instanceof|new|return|switch|throw|while)\n"
|
||||
"^[ \t]*(([A-Za-z_][A-Za-z_0-9]*[ \t]+)+[A-Za-z_][A-Za-z_0-9]*[ \t]*\\([^;]*)$",
|
||||
@ -35,8 +36,7 @@ PATTERNS("java",
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"
|
||||
"|[-+*/<>%&^|=!]="
|
||||
"|--|\\+\\+|<<=?|>>>?=?|&&|\\|\\|"
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|--|\\+\\+|<<=?|>>>?=?|&&|\\|\\|"),
|
||||
PATTERNS("objc",
|
||||
/* Negate C statements that can look like functions */
|
||||
"!^[ \t]*(do|for|if|else|return|switch|while)\n"
|
||||
@ -49,8 +49,7 @@ PATTERNS("objc",
|
||||
/* -- */
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"
|
||||
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"),
|
||||
PATTERNS("pascal",
|
||||
"^(((class[ \t]+)?(procedure|function)|constructor|destructor|interface|"
|
||||
"implementation|initialization|finalization)[ \t]*.*)$"
|
||||
@ -59,8 +58,7 @@ PATTERNS("pascal",
|
||||
/* -- */
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+|0[xXbB]?[0-9a-fA-F]+"
|
||||
"|<>|<=|>=|:=|\\.\\."
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|<>|<=|>=|:=|\\.\\."),
|
||||
PATTERNS("perl",
|
||||
"^[ \t]*package .*;\n"
|
||||
"^[ \t]*sub .* \\{\n"
|
||||
@ -76,33 +74,29 @@ PATTERNS("perl",
|
||||
"|&&|\\|\\||//|\\+\\+|--|\\*\\*|\\.\\.\\.?"
|
||||
"|[-+*/%.^&<>=!|]="
|
||||
"|=~|!~"
|
||||
"|<<|<>|<=>|>>"
|
||||
"|[^[:space:]]"),
|
||||
"|<<|<>|<=>|>>"),
|
||||
PATTERNS("php",
|
||||
"^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
|
||||
"^[\t ]*(class.*)$",
|
||||
/* -- */
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+|0[xXbB]?[0-9a-fA-F]+"
|
||||
"|[-+*/<>%&^|=!.]=|--|\\+\\+|<<=?|>>=?|===|&&|\\|\\||::|->"
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|[-+*/<>%&^|=!.]=|--|\\+\\+|<<=?|>>=?|===|&&|\\|\\||::|->"),
|
||||
PATTERNS("python", "^[ \t]*((class|def)[ \t].*)$",
|
||||
/* -- */
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+[jJlL]?|0[xX]?[0-9a-fA-F]+[lL]?"
|
||||
"|[-+*/<>%&^|=!]=|//=?|<<=?|>>=?|\\*\\*=?"
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|[-+*/<>%&^|=!]=|//=?|<<=?|>>=?|\\*\\*=?"),
|
||||
/* -- */
|
||||
PATTERNS("ruby", "^[ \t]*((class|module|def)[ \t].*)$",
|
||||
/* -- */
|
||||
"(@|@@|\\$)?[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+|0[xXbB]?[0-9a-fA-F]+|\\?(\\\\C-)?(\\\\M-)?."
|
||||
"|//=?|[-+*/<>%&^|=!]=|<<=?|>>=?|===|\\.{1,3}|::|[!=]~"
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|//=?|[-+*/<>%&^|=!]=|<<=?|>>=?|===|\\.{1,3}|::|[!=]~"),
|
||||
PATTERNS("bibtex", "(@[a-zA-Z]{1,}[ \t]*\\{{0,1}[ \t]*[^ \t\"@',\\#}{~%]*).*$",
|
||||
"[={}\"]|[^={}\" \t]+"),
|
||||
PATTERNS("tex", "^(\\\\((sub)*section|chapter|part)\\*{0,1}\\{.*)$",
|
||||
"\\\\[a-zA-Z@]+|\\\\.|[a-zA-Z0-9\x80-\xff]+|[^[:space:]]"),
|
||||
"\\\\[a-zA-Z@]+|\\\\.|[a-zA-Z0-9\x80-\xff]+"),
|
||||
PATTERNS("cpp",
|
||||
/* Jump targets or access declarations */
|
||||
"!^[ \t]*[A-Za-z_][A-Za-z_0-9]*:.*$\n"
|
||||
@ -113,8 +107,7 @@ PATTERNS("cpp",
|
||||
/* -- */
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"
|
||||
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"),
|
||||
PATTERNS("csharp",
|
||||
/* Keywords */
|
||||
"!^[ \t]*(do|while|for|if|else|instanceof|new|return|switch|case|throw|catch|using)\n"
|
||||
@ -129,8 +122,7 @@ PATTERNS("csharp",
|
||||
/* -- */
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
"|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"
|
||||
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"
|
||||
"|[^[:space:]]|[\x80-\xff]+"),
|
||||
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"),
|
||||
{ "default", NULL, -1, { NULL, 0 } },
|
||||
};
|
||||
#undef PATTERNS
|
||||
|
Loading…
Reference in New Issue
Block a user