mirror of
https://github.com/sharkdp/bat.git
synced 2025-01-31 02:01:05 +00:00
Add AWK file for syntax tests
This commit is contained in:
parent
02cd68db37
commit
c9237cccab
35
tests/syntax-tests/highlighted/AWK/quicksort.awk
Normal file
35
tests/syntax-tests/highlighted/AWK/quicksort.awk
Normal file
@ -0,0 +1,35 @@
|
||||
[38;2;117;113;94m#[0m[38;2;117;113;94m quicksort.awk --- Quicksort algorithm, with user-supplied[0m
|
||||
[38;2;117;113;94m#[0m[38;2;117;113;94m comparison function[0m
|
||||
[38;2;117;113;94m#[0m
|
||||
[38;2;117;113;94m#[0m[38;2;117;113;94m Arnold Robbins, arnold@skeeve.com, Public Domain[0m
|
||||
[38;2;117;113;94m#[0m[38;2;117;113;94m January 2009[0m
|
||||
|
||||
|
||||
[38;2;117;113;94m#[0m[38;2;117;113;94m quicksort --- C.A.R. Hoare's quicksort algorithm. See Wikipedia[0m
|
||||
[38;2;117;113;94m#[0m[38;2;117;113;94m or almost any algorithms or computer science text.[0m
|
||||
[38;2;117;113;94m#[0m
|
||||
[38;2;117;113;94m#[0m[38;2;117;113;94m Adapted from K&R-II, page 110[0m
|
||||
|
||||
[3;38;2;102;217;239mfunction[0m[38;2;248;248;242m [0m[38;2;166;226;46mquicksort[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mdata[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mleft[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mright[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mless_than[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mi[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mlast[0m[38;2;248;248;242m)[0m
|
||||
[38;2;248;248;242m{[0m
|
||||
[38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[38;2;255;255;255m([0m[38;2;255;255;255mleft[0m[38;2;248;248;242m [0m[38;2;249;38;114m>=[0m[38;2;248;248;242m [0m[38;2;255;255;255mright[0m[38;2;255;255;255m)[0m[38;2;248;248;242m [0m[38;2;117;113;94m#[0m[38;2;117;113;94m do nothing if array contains fewer[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mreturn[0m[38;2;248;248;242m [0m[38;2;117;113;94m#[0m[38;2;117;113;94m than two elements[0m
|
||||
|
||||
[38;2;248;248;242m [0m[38;2;166;226;46mquicksort_swap[0m[38;2;255;255;255m([0m[38;2;255;255;255mdata[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mleft[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mint[0m[38;2;255;255;255m([0m[38;2;255;255;255m([0m[38;2;255;255;255mleft[0m[38;2;248;248;242m [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;255;255;255mright[0m[38;2;255;255;255m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m/[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;255;255;255m)[0m[38;2;255;255;255m)[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mlast[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;255;255;255mleft[0m
|
||||
[38;2;248;248;242m [0m[38;2;166;226;46mfor[0m[38;2;248;248;242m [0m[38;2;255;255;255m([0m[38;2;255;255;255mi[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;255;255;255mleft[0m[38;2;248;248;242m [0m[38;2;249;38;114m+[0m[38;2;248;248;242m [0m[38;2;190;132;255m1[0m[38;2;248;248;242m; [0m[38;2;255;255;255mi[0m[38;2;248;248;242m [0m[38;2;249;38;114m<=[0m[38;2;248;248;242m [0m[38;2;255;255;255mright[0m[38;2;248;248;242m; [0m[38;2;255;255;255mi[0m[38;2;249;38;114m++[0m[38;2;255;255;255m)[0m
|
||||
[38;2;248;248;242m [0m[38;2;166;226;46mif[0m[38;2;248;248;242m [0m[38;2;255;255;255m([0m[38;2;248;248;242m@[0m[38;2;166;226;46mless_than[0m[38;2;255;255;255m([0m[38;2;255;255;255mdata[0m[38;2;249;38;114m[[0m[38;2;255;255;255mi[0m[38;2;249;38;114m][0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mdata[0m[38;2;249;38;114m[[0m[38;2;255;255;255mleft[0m[38;2;249;38;114m][0m[38;2;255;255;255m)[0m[38;2;255;255;255m)[0m
|
||||
[38;2;248;248;242m [0m[38;2;166;226;46mquicksort_swap[0m[38;2;255;255;255m([0m[38;2;255;255;255mdata[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m+[0m[38;2;249;38;114m+[0m[38;2;255;255;255mlast[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mi[0m[38;2;255;255;255m)[0m
|
||||
[38;2;248;248;242m [0m[38;2;166;226;46mquicksort_swap[0m[38;2;255;255;255m([0m[38;2;255;255;255mdata[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mleft[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mlast[0m[38;2;255;255;255m)[0m
|
||||
[38;2;248;248;242m [0m[38;2;166;226;46mquicksort[0m[38;2;255;255;255m([0m[38;2;255;255;255mdata[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mleft[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mlast[0m[38;2;248;248;242m [0m[38;2;249;38;114m-[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[38;2;255;255;255mless_than[0m[38;2;255;255;255m)[0m
|
||||
[38;2;248;248;242m [0m[38;2;166;226;46mquicksort[0m[38;2;255;255;255m([0m[38;2;255;255;255mdata[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mlast[0m[38;2;248;248;242m [0m[38;2;249;38;114m+[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[38;2;255;255;255mright[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;255;255;255mless_than[0m[38;2;255;255;255m)[0m
|
||||
[38;2;248;248;242m}[0m
|
||||
|
||||
[38;2;117;113;94m#[0m[38;2;117;113;94m quicksort_swap --- helper function for quicksort, should really be inline[0m
|
||||
|
||||
[3;38;2;102;217;239mfunction[0m[38;2;248;248;242m [0m[38;2;166;226;46mquicksort_swap[0m[38;2;248;248;242m([0m[3;38;2;253;151;31mdata[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mi[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mj[0m[38;2;248;248;242m, [0m[3;38;2;253;151;31mtemp[0m[38;2;248;248;242m)[0m
|
||||
[38;2;248;248;242m{[0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mtemp[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;255;255;255mdata[0m[38;2;249;38;114m[[0m[38;2;255;255;255mi[0m[38;2;249;38;114m][0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mdata[0m[38;2;249;38;114m[[0m[38;2;255;255;255mi[0m[38;2;249;38;114m][0m[38;2;248;248;242m = [0m[38;2;255;255;255mdata[0m[38;2;249;38;114m[[0m[38;2;255;255;255mj[0m[38;2;249;38;114m][0m
|
||||
[38;2;248;248;242m [0m[38;2;255;255;255mdata[0m[38;2;249;38;114m[[0m[38;2;255;255;255mj[0m[38;2;249;38;114m][0m[38;2;248;248;242m = [0m[38;2;255;255;255mtemp[0m
|
||||
[38;2;248;248;242m}[0m
|
35
tests/syntax-tests/source/AWK/quicksort.awk
Normal file
35
tests/syntax-tests/source/AWK/quicksort.awk
Normal file
@ -0,0 +1,35 @@
|
||||
# quicksort.awk --- Quicksort algorithm, with user-supplied
|
||||
# comparison function
|
||||
#
|
||||
# Arnold Robbins, arnold@skeeve.com, Public Domain
|
||||
# January 2009
|
||||
|
||||
|
||||
# quicksort --- C.A.R. Hoare's quicksort algorithm. See Wikipedia
|
||||
# or almost any algorithms or computer science text.
|
||||
#
|
||||
# Adapted from K&R-II, page 110
|
||||
|
||||
function quicksort(data, left, right, less_than, i, last)
|
||||
{
|
||||
if (left >= right) # do nothing if array contains fewer
|
||||
return # than two elements
|
||||
|
||||
quicksort_swap(data, left, int((left + right) / 2))
|
||||
last = left
|
||||
for (i = left + 1; i <= right; i++)
|
||||
if (@less_than(data[i], data[left]))
|
||||
quicksort_swap(data, ++last, i)
|
||||
quicksort_swap(data, left, last)
|
||||
quicksort(data, left, last - 1, less_than)
|
||||
quicksort(data, last + 1, right, less_than)
|
||||
}
|
||||
|
||||
# quicksort_swap --- helper function for quicksort, should really be inline
|
||||
|
||||
function quicksort_swap(data, i, j, temp)
|
||||
{
|
||||
temp = data[i]
|
||||
data[i] = data[j]
|
||||
data[j] = temp
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user