summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex/bst/camel/law.bst
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/camel/law.bst')
-rw-r--r--Master/texmf-dist/bibtex/bst/camel/law.bst1685
1 files changed, 1685 insertions, 0 deletions
diff --git a/Master/texmf-dist/bibtex/bst/camel/law.bst b/Master/texmf-dist/bibtex/bst/camel/law.bst
new file mode 100644
index 00000000000..88d808d46f2
--- /dev/null
+++ b/Master/texmf-dist/bibtex/bst/camel/law.bst
@@ -0,0 +1,1685 @@
+%%
+%% This is file `law.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% camel.dtx (with options: `bstheader,eng')
+%% law.dtx (with options: `bstheader,eng')
+%% camel.dtx (with options: `bstlibrary,eng')
+%% law.dtx (with options: `bstfunctions,eng')
+%% camel.dtx (with options: `bsttrailer,eng')
+%% This file is part of the Law module of the Camel package.
+%% ---------------------------------------------------------
+%% This is a generated file.
+%% IMPORTANT NOTICE:
+%%
+%% You are allowed to change this file, subject to the following
+%% conditions. Under any circumstances, new macro definitions
+%% should not be added to this file. You are welcome to modify
+%% the macro definitions contained in this file for your own
+%% use. If you pass a copy of the modified version to someone
+%% else, you should (a) let me know about the change on
+%% fb@soas.ac.uk, and (b) put a note of the changes and of your
+%% own contact details in the file. Furthermore, you must
+%% acknowledge Camel and its author(s) in the new file (if it
+%% is distributed to others), and you must attach these same
+%% conditions to the new file.
+%%
+%% You are not allowed to distribute this file alone. You are not
+%% allowed to take money for the distribution or use of this file
+%% (or a changed version) except for a nominal charge for copying
+%% etc.
+%%
+%% You are allowed to distribute this file under the condition that
+%% it is distributed with all of its contents, intact.
+%%
+%% For error reports, or offers to help make Camel a more powerful,
+%% friendlier, and better package, please contact me on
+%% `fb' at soas.ac.uk
+%%
+FUNCTION { hello }
+{
+" ============================================"
+" bibliography package, version 1.0k or later"
+" Use with LaTeX2e and the Camel prototype "
+" --------------------------------------------"
+" documentation last updated: 5 December 1994 "
+" code last updated: 22 March 1995 "
+" version: 1.0i "
+" Camel style package. "
+" This is the `law' style for BibTeX and the "
+" ============================================"
+stack$
+}
+ENTRY
+{ address
+annote
+author
+booktitle
+chapter
+edition
+editor
+howpublished
+institution
+journal
+key
+month
+note
+number
+organization
+pages
+publisher
+school
+series
+title
+type
+volume
+year
+date
+jurisdiction
+court
+division
+divno
+casedate
+translator
+booktranslator
+cites
+units
+}
+{}
+{ label extra.label sort.label }
+STRINGS { s t u v scrubdate
+ volume.var year.var number.var journal.var pages.var }
+INTEGERS { itemcount date.specials charcount a b c
+ nameptr namesleft numnames a.logical }
+FUNCTION {dc..} {"District Court"}
+FUNCTION {sc..} {"Supreme Court"}
+ FUNCTION {not}
+ { { #0 }
+ { #1 }
+ if$
+ }
+ FUNCTION {and}
+ { 'skip$
+ { pop$ #0 }
+ if$
+ }
+ FUNCTION {or}
+ { { pop$ #1 }
+ 'skip$
+ if$
+ }
+FUNCTION {times.ten}
+ { duplicate$ duplicate$ duplicate$ duplicate$ duplicate$
+ duplicate$ duplicate$ duplicate$ duplicate$
+ + + + + + + + + +
+ }
+FUNCTION {character.length}
+ { 'u :=
+ #0 'charcount :=
+ { u empty$ not }
+ { u
+ #2
+ global.max$ substring$ 'u :=
+ charcount #1 + 'charcount :=
+ }while$
+ charcount
+ }
+FUNCTION {first.in.second}
+ { 's :=
+ duplicate$ empty$
+ { pop$ pop$ #0 #0 }
+ { swap$ duplicate$ character.length 'a :=
+ swap$ duplicate$ character.length 'b :=
+ b a <
+ { pop$ pop$ #0 #0 }
+ { s "end" =
+ { b a - #1 + global.max$ substring$ =
+ { b a - #1 + #1 }
+ { #0 #0
+ }if$
+ }
+ { s "start" =
+ { #1 a substring$ =
+ { #1 #1 }
+ { #0
+ }if$
+ }
+ { s "reverse" =
+ { b a - #1 + 'b :=
+ { b #0 > }
+ { duplicate$
+ b a substring$
+ 's :=
+ swap$ duplicate$ s =
+ { pop$ pop$ b #0 'b := #1 }
+ { b #1 =
+ { pop$ pop$ #0 #0 'b := #0 }
+ { swap$ b #1 - 'b :=
+ }if$
+ }if$
+ }while$
+ }
+ { b a - #1 + 'b := #1 'c :=
+ { c b < }
+ { duplicate$
+ c a substring$
+ 's :=
+ swap$ duplicate$ s =
+ { pop$ pop$ c b 'c := #1 }
+ { b c - #1 =
+ { pop$ pop$ #0 b 'c := #0 }
+ { swap$ c #1 + 'c :=
+ }if$
+ }if$
+ }while$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }
+FUNCTION { get.character.type }
+ { duplicate$ "*" =
+ { pop$ duplicate$ empty$
+ { pop$ "other" }
+ { chr.to.int$ duplicate$
+ duplicate$ #47 > swap$ #58 < and
+ { pop$ "numeral" }
+ { duplicate$ #64 > swap$ duplicate$ #91 < swap$
+ duplicate$ #96 > swap$ #123 < and 'a.logical :=
+ and a.logical or
+ { "letter" }
+ { "other"
+ }if$
+ }if$
+ }if$
+ }
+ { =
+ { "other" }
+ { "letter"
+ }if$
+ }if$
+ }
+FUNCTION { type.last.char }
+ { duplicate$ character.length
+ #1 substring$
+ "*" get.character.type
+ }
+ FUNCTION {empty.to.null}
+ { duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+ }
+FUNCTION { check }
+{ 't :=
+ duplicate$ empty$
+ { "empty " t * " in " * cite$ * warning$}
+ 'skip$
+ if$
+}
+FUNCTION {either.or}
+ { duplicate$ empty$
+ { pop$ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+ }
+ { swap$ duplicate$ empty$
+ { pop$ }
+ { "both items in an either.or pair are non-empty in " cite$ *
+ warning$
+ " I'm using only ONE of these items (the second passed by the function)."
+ warning$
+ pop$
+ }if$
+ }if$
+ }
+FUNCTION {either.or.nowarning}
+ { duplicate$ empty$
+ { pop$ duplicate$ empty$
+ { empty.to.null }
+ 'skip$
+ if$
+ }
+ { swap$ pop$ }
+ if$
+ }
+FUNCTION {must.must.must}
+ { empty.to.null 't :=
+ empty.to.null swap$ empty.to.null swap$ t
+ * *
+ write$
+ }
+FUNCTION {might.ifone.must}
+ { empty.to.null 't :=
+ swap$ duplicate$ empty$
+ { pop$ pop$ t }
+ { swap$ empty.to.null t * * }
+ if$
+ write$
+ }
+FUNCTION {iftwo.might.iftwo}
+ { 't :=
+ duplicate$ empty$
+ { pop$ pop$ }
+ { empty.to.null swap$ empty.to.null swap$
+ t empty.to.null
+ * * write$ }
+ if$
+ }
+FUNCTION {must.ifthree.might}
+ { duplicate$ empty$
+ { pop$ pop$ empty.to.null }
+ { 't :=
+ swap$ empty.to.null
+ swap$ empty.to.null
+ t * *
+ }if$
+ write$
+ }
+FUNCTION {field.tag.no.combine}
+ { "endlabel" =
+ { duplicate$ empty$
+ { pop$ pop$ empty.to.null }
+ { empty.to.null 's := empty.to.null
+ swap$ empty.to.null swap$ s * *
+ }if$
+ }
+ { duplicate$ empty$
+ { pop$ pop$ empty.to.null }
+ { empty.to.null 's := empty.to.null
+ swap$ empty.to.null s swap$ * *
+ }if$
+ }if$
+ }
+FUNCTION {change.letter.case}
+ { 't :=
+ duplicate$ empty$
+ 'skip$
+ { t chr.to.int$ "n" chr.to.int$ =
+ 'skip$
+ { t change.case$ }
+ if$
+ }
+ if$
+ }
+ FUNCTION {n.dashify}
+ { 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+ }
+FUNCTION { gather.chars }
+ {
+ "forward" =
+ { swap$ duplicate$ character.length 'a :=
+ 't :=
+ duplicate$
+ { t #1 #1 substring$ swap$ get.character.type
+ "other" =
+ t empty$ not and }
+ { t #2 global.max$ substring$ 't := duplicate$
+ }while$
+ duplicate$ t #1 #1 substring$ swap$ get.character.type
+ t #1 #1 substring$ swap$
+ "" swap$ duplicate$ 'u :=
+ t #2 global.max$ substring$ 't :=
+ { u = }
+ { * swap$
+ u * 'u :=
+ u #1 #1 substring$ swap$
+ u #1 #1 substring$
+ u #2 global.max$ substring$ 'u :=
+ t #1 #1 substring$ swap$ get.character.type
+ t #1 #1 substring$ swap$
+ duplicate$ u =
+ { t #2 global.max$ substring$ 't := }
+ { swap$ pop$
+ }if$
+ }while$
+ swap$ pop$ t swap$ u
+ }
+ { swap$ duplicate$ character.length 'a :=
+ 't :=
+ duplicate$
+ { t a #1 substring$ swap$ get.character.type
+ "other" =
+ t empty$ not and }
+ { a #1 - 'a :=
+ t #1 a substring$ 't :=
+ }while$
+ duplicate$ t a #1 substring$ swap$ get.character.type
+ t a #1 substring$ swap$
+ "" swap$ duplicate$ 'u :=
+ a #1 - 'a :=
+ t #1 a substring$ 't :=
+ { u = }
+ { swap$ * swap$
+ u * 'u :=
+ u #1 #1 substring$ swap$
+ u #1 #1 substring$
+ u #2 global.max$ substring$ 'u :=
+ t a #1 substring$ swap$ get.character.type
+ t a #1 substring$ swap$
+ duplicate$ u =
+ { a #1 - 'a := t #1 a substring$ 't := }
+ { swap$ pop$
+ }if$
+ }while$
+ swap$ pop$ t swap$ u
+ }if$
+ }
+ FUNCTION {tie.or.space.connect}
+ { duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+ }
+FUNCTION {format.pages}
+ { swap$ duplicate$ empty$
+ { pop$ pop$ "" }
+ { swap$ duplicate$ "short" =
+ { pop$
+ 's :=
+ ""
+ s #1 #1 substring$
+ { "-" = not }
+ { s #1 #1 substring$ *
+ s #2 global.max$ substring$ 's :=
+ s #1 #1 substring$
+ duplicate$ "" =
+ { pop$ "-" }
+ 'skip$
+ if$
+ }
+ while$
+ }
+ { "full" =
+ { pages n.dashify }
+ { "invalid switch fed to the format.pages function"
+ warning$
+ }if$
+ }if$
+ }if$
+}
+FUNCTION {format.names}
+ { swap$ duplicate$ empty$
+ { swap$ pop$ }
+ { 's :=
+ 'u :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { u "lastonly" =
+ { s nameptr "{vv~}{ll}" format.name$ 't := }
+ { u "firstinitial" =
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := }
+ { u "full" =
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=}
+ { "style error; invalid or non-existent toggle" warning$ }
+ if$
+ }
+ if$
+ }
+ if$
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al." * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ }
+ if$
+ }
+ FUNCTION {format.month.year}
+ { year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+ }
+FUNCTION {fillout.a.year}
+ { duplicate$ character.length #2 =
+ { "19" swap$ * }
+ 'skip$
+ if$
+ }
+FUNCTION {parse.month}
+ { duplicate$ "jan" =
+ { pop$ "1" }
+ { duplicate$ "feb" =
+ { pop$ "2" }
+ { duplicate$ "mar" =
+ { pop$ "3" }
+ { duplicate$ "apr" =
+ { pop$ "4" }
+ { duplicate$ "may" =
+ { pop$ "5" }
+ { duplicate$ "jun" =
+ { pop$ "6" }
+ { duplicate$ "jul" =
+ { pop$ "7" }
+ { duplicate$ "aug" =
+ { pop$ "8" }
+ { duplicate$ "sep" =
+ { pop$ "9" }
+ { duplicate$ "oct" =
+ { pop$ "10" }
+ { duplicate$ "nov" =
+ { pop$ "11" }
+ { duplicate$ "dec" =
+ { pop$ "12" }
+ { "invalid month in " cite$ * warning$
+ "passing text to Camel verbatim" warning$
+ "t" 'scrubdate :=
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }
+FUNCTION { format.month.name }
+ { swap$ duplicate$ empty$
+ { pop$ pop$ "" }
+ { swap$ "long" =
+ { duplicate$ "1" =
+ { "January" }
+ { duplicate$ "2" =
+ { "February" }
+ { duplicate$ "3" =
+ { "March" }
+ { duplicate$ "4" =
+ { "April" }
+ { duplicate$ "5" =
+ { "May" }
+ { duplicate$ "6" =
+ { "June" }
+ { duplicate$ "7" =
+ { "July" }
+ { duplicate$ "8" =
+ { "August" }
+ { duplicate$ "9" =
+ { "September" }
+ { duplicate$ "10" =
+ { "October" }
+ { duplicate$ "11" =
+ { "November" }
+ { duplicate$ "12" =
+ { "December" }
+ { "invalid month in " cite$ * warning$ ""
+ "passing text to Camel verbatim" warning$
+ "t" 'scrubdate :=
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }
+ { duplicate$ "1" =
+ { "Jan." }
+ { duplicate$ "2" =
+ { "Feb." }
+ { duplicate$ "3" =
+ { "Mar." }
+ { duplicate$ "4" =
+ { "Apr." }
+ { duplicate$ "5" =
+ { "May" }
+ { duplicate$ "6" =
+ { "Jun." }
+ { duplicate$ "7" =
+ { "Jul." }
+ { duplicate$ "8" =
+ { "Aug." }
+ { duplicate$ "9" =
+ { "Sept." }
+ { duplicate$ "10" =
+ { "Oct." }
+ { duplicate$ "11" =
+ { "Nov." }
+ { duplicate$ "12" =
+ { "Dec." }
+ { ""
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+swap$ pop$
+ }if$
+ }
+FUNCTION {extract.date}
+ { 'v := "" 's := "" 't := "" 'u :=
+ itemcount #0 =
+ { cites empty$
+ { "some date or other is COMPLETELY empty in " cite$ *
+ warning$ }
+ 'skip$
+ if$
+ }
+ { itemcount #1 =
+ { pop$ fillout.a.year 's := "" 'u := "" 't := }
+ { itemcount #2 =
+ { pop$ swap$ pop$ swap$ duplicate$ character.length #4 =
+ { swap$ "--" swap$ * * 's := "" 't := }
+ { swap$ fillout.a.year 's := 't :=
+ }if$
+ "" 'u :=
+ }
+ { itemcount #3 =
+ { date.specials
+ { pop$ fillout.a.year 's :=
+ "month" =
+ { 't :=
+ pop$ 'u := }
+ { 'u :=
+ pop$ 't :=
+ }if$
+ }
+ { pop$ fillout.a.year 's :=
+ pop$ 'u :=
+ pop$ 't :=
+ }if$
+ }
+ { "too many items for date in " cite$ * warning$
+ }if$
+ }if$
+ }if$
+ }if$
+ v duplicate$ "month.dd.yy" =
+ { pop$ s ", " u "\ " t "long" format.month.name }
+ { duplicate$ "dd.month.yy" =
+ { pop$ s "\ " t "long" format.month.name "\ " u }
+ { duplicate$ "mo.dd.yy" =
+ { pop$ s ", " u "\ " t "short" format.month.name }
+ { duplicate$ "dd.mo.yy" =
+ { pop$ s "\ " t "short" format.month.name "\ " u }
+ { duplicate$ "dd.mm.yy" =
+ { pop$ s "/" t "/" u }
+ { duplicate$ "mm.dd.yy" =
+ { s "/" u "/" t }
+ { "yy" =
+ { "" "" "" "" s }
+ { "invalid date toggle in style file" warning$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ }if$
+ "" 'v :=
+ duplicate$ empty$
+ { pop$ pop$ }
+ { swap$ * 'v := }
+ if$
+ duplicate$ empty$
+ { pop$ pop$ }
+ { swap$ * v swap$ * 'v := }
+ if$
+ duplicate$ empty$
+ { pop$ v }
+ { v swap$ * }
+ if$
+ }
+FUNCTION {topup.date}
+ { 'a :=
+ duplicate$ character.length #2 =
+ { duplicate$ #1 #1 substring$ chr.to.int$ #48 -
+ times.ten swap$ #2 #1 substring$ chr.to.int$ #48 -
+ +
+ }
+ { duplicate$ character.length #1 =
+ { chr.to.int$ #48 - }
+ { pop$ #0 "I can't cope with more than two Japanese year digits in "
+ cite$ * warning$
+ }if$
+ }if$
+ a + int.to.str$
+ }
+FUNCTION {format.jdate}
+ { duplicate$ #2 global.max$ substring$ "*" "forward" gather.chars
+ pop$ 't := swap$
+ #1 #1 substring$ duplicate$ "s" =
+ { pop$ t #1925 topup.date }
+ { duplicate$ "m" =
+ { pop$ t #1867 topup.date }
+ { duplicate$ "t" =
+ { pop$ t #1911 topup.date }
+ { "h" =
+ { t #1988 topup.date }
+ { "invalid Imperial calendar code in " cite$ * warning$
+ }if$
+ }if$
+ }if$
+ }if$
+ swap$
+ "*" "forward" gather.chars
+ pop$ swap$
+ "*" "forward" gather.chars
+ pop$ swap$ pop$ 't := swap$ "default" swap$ t swap$ "default"
+ swap$ "default"
+ #2 'itemcount :=
+ }
+FUNCTION {format.date}
+ { 'v :=
+ empty.to.null 's :=
+ #0 'charcount :=
+ #0 'itemcount :=
+ #0 'date.specials :=
+ { s empty$ not }
+ { s "*" "forward" gather.chars
+ duplicate$ "letter" =
+ { pop$ duplicate$ character.length #1 = itemcount not and
+ { pop$ pop$ s format.jdate "" 's := }
+ { duplicate$ character.length #3 =
+ { swap$ 's :=
+ parse.month "month" #1 'date.specials := }
+ { swap$ 's :=
+ pop$ "1" "invalid date in " cite$ * warning$
+ "passing text to Camel verbatim" warning$
+ "t" 'scrubdate :=
+ "default"
+ }if$
+ }if$
+ }
+ { "numeral" =
+ { duplicate$ character.length #1 =
+ { swap$ 's := "default" }
+ { duplicate$ character.length #2 =
+ { swap$ 's := "default" }
+ { duplicate$ character.length #4 =
+ { swap$ 's := "default" }
+ { swap$ 's := pop$ "1"
+ "invalid numerical element in date for " cite$ * warning$
+ "passing text to Camel verbatim" warning$
+ "t" 'scrubdate :=
+ "default"
+ }if$
+ }if$
+ }if$
+ }
+ { swap$ 's := pop$ "1"
+ "failed to parse date in " cite$ * warning$
+ "default"
+ }if$
+ }if$
+ itemcount #1 + 'itemcount :=
+ }while$
+ v extract.date
+ scrubdate "t" =
+ { pop$ year empty.to.null }
+ 'skip$
+ if$
+ }
+FUNCTION {parse.one.cite}
+{ duplicate$ "=" = not
+ { "=" "forward" gather.chars pop$
+ duplicate$ "[" swap$ "forward" first.in.second
+ { swap$ duplicate$ "]" swap$ "forward" first.in.second
+ { "" 'volume.var :=
+ 'b := swap$ 'a := a b <
+ { duplicate$ a #1 + b a #1 + - substring$
+ 'year.var :=
+ b #1 + global.max$ substring$
+ " " "forward" gather.chars pop$
+ duplicate$ "*" "forward" gather.chars
+ "numeral" =
+ { swap$ duplicate$ empty$
+ { pop$ pop$ 'number.var := }
+ { pop$ pop$ swap$ * "" 'number.var :=
+ }if$
+ }
+ { pop$ pop$ " " swap$ * swap$ * "" 'number.var :=
+ }if$
+ }
+ { "Weird syntax error in " cite$ * warning$
+ }if$
+ }
+ { "Opening [ without closing ] in " cite$ * warning$
+ }if$
+ }
+ { pop$ duplicate$ ")" swap$ "reverse" first.in.second
+ { swap$ duplicate$ "(" swap$ "reverse" first.in.second
+ { 'a := swap$ 'b := a b <
+ { duplicate$ a #1 + b a #1 + - substring$
+ 'year.var :=
+ #1 a #1 - substring$
+ " " "forward" gather.chars pop$
+ duplicate$ "/" swap$ "forward" first.in.second
+ { pop$ "/" "forward" gather.chars pop$
+ swap$ duplicate$ empty$
+ { pop$ "" 'number.var := }
+ { #2 global.max$ substring$
+ 'number.var :=
+ }if$
+ }
+ { pop$ "" 'number.var :=
+ }if$
+ duplicate$ empty$
+ { pop$ "" 'volume.var := }
+ { duplicate$ "*" "forward" gather.chars
+ "numeral" =
+ { swap$ duplicate$ empty$
+ { pop$ pop$ 'volume.var := }
+ { pop$ pop$ swap$ * "" 'volume.var :=
+ }if$
+ }
+ { pop$ pop$ " " swap$ * swap$ * "" 'volume.var :=
+ }if$
+ }if$
+ }
+ { "Weird syntax error in " cite$ * warning$
+ }if$
+ }
+ { "Closing ) without opening ( in " cite$ * warning$
+ }if$
+ }
+ { pop$ "No recognizable date in string in " cite$ * warning$
+ }if$
+ }if$
+ " " swap$ * " " "reverse" gather.chars pop$
+ duplicate$ "*" "forward" gather.chars
+ "numeral" =
+ { swap$ duplicate$ empty$
+ { pop$ pop$ 'pages.var := }
+ { pop$ pop$ swap$ * "" 'pages.var :=
+ }if$
+ }
+ { pop$ pop$ swap$ * "" 'pages.var :=
+ }if$
+ duplicate$ empty$
+ { 'journal.var := }
+ { duplicate$ character.length #2 -
+ #3 swap$ substring$ 'journal.var :=
+ }if$
+ }
+ 'skip$
+ if$
+}
+FUNCTION {build.bridges}
+ { duplicate$ empty$
+ { pop$ skip$ }
+ { duplicate$ "sections" =
+ { pop$ "\bridges{\ \S~}{}{\ \S\S~}{\ }{\ \S~}{\ \S\S~}"
+ "" "" must.must.must
+ }
+
+ { duplicate$ "articles" =
+ { pop$
+ "\bridges{\ art.~}{}{\ arts.~}{\ }{\ art.~}{\ arts.~}"
+ "" "" must.must.must
+ }
+ { "schedules" =
+ { "\bridges{\ sched.~}{}{\ scheds.~}{\ }{\ sched.~}{\ scheds.~}"
+ "" "" must.must.must
+ }
+ 'skip$
+ if$
+ }if$
+ }if$
+ }if$
+ }
+FUNCTION { get.a.kinda.sort.key }
+{ author empty$
+ { title empty$
+ { "0000" }
+ { title "*" "forward" gather.chars pop$
+ duplicate$ "l" change.letter.case "the" =
+ { pop$ "*" "forward" gather.chars pop$ swap$ pop$ }
+ { duplicate$ "l" change.letter.case "a" =
+ { pop$ "*" "forward" gather.chars pop$ swap$ pop$ }
+ { swap$ pop$
+ }if$
+ }if$
+ }if$
+ }
+ { author #1 "{ll}" format.name$
+ }if$
+}
+FUNCTION {j.format.division}
+ { division empty$
+ 'skip$
+ { dc.. court "end" first.in.second
+ { pop$ " No.~" 's := "endlabel" 't := }
+ { pop$ sc.. court "start" first.in.second
+ { pop$ "No.\ " 's := "frontlabel" 't := }
+ { pop$ " " 's := "endlabel" 't :=
+ }if$
+ }if$
+ }if$
+ division s divno t field.tag.no.combine
+ }
+FUNCTION {article}
+{ volume empty$ not number empty$ not and
+ volume empty$ number empty$ year "mo.dd.yy" format.date
+ pop$ itemcount #1 = not and and or
+ { "\bridges{,\ p.~}{,\ }{,\ }{\ }{\ at~}{\ at~}"
+ "" "" must.must.must
+ newline$
+ }
+ { title type.last.char "numeral" =
+ { "\bridges{,\ }{,\ }{,\ }{\ }{\ at~}{\ at~}"
+ "" "" must.must.must
+ newline$
+ }
+ 'skip$
+ if$
+ }if$
+ "\lexibib{article}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key
+ "}{" "" must.must.must
+author "lastonly" format.names
+"}{"
+""
+must.must.must
+title "title" check
+"}{"
+""
+must.must.must
+ volume empty$ not number empty$ not and
+ { journal "journal" check ", v.~" volume must.must.must
+ ", n.~" number "}{" must.must.must }
+ { volume empty$ not
+ { volume "\ " journal "journal" check empty.to.null
+ might.ifone.must
+ "}{" "" "" must.must.must}
+ { year "mo.dd.yy" format.date itemcount #1 =
+ { "[" swap$ "] " iftwo.might.iftwo
+ number "\ " journal "journal" check might.ifone.must
+ "}{" "" "" must.must.must}
+ { pop$ number empty$
+ { "\\" journal "journal" check "\\" must.must.must
+ "}{" "" "" must.must.must }
+ { number "\ " journal "journal" check might.ifone.must
+ "}{" "" "" must.must.must
+ }if$
+ }if$
+ }if$
+ }if$
+pages "short" format.pages "pages" check
+"}{"
+""
+must.must.must
+volume empty$ not
+ { "(" "" "" must.must.must
+ publisher ":\ " "" might.ifone.must
+ "" year "mo.dd.yy" format.date ")" must.must.must }
+ { year "mo.dd.yy" format.date itemcount #1 =
+ 'pop$
+ { "" "" must.must.must
+ }if$
+ }if$
+crossref empty$
+{ "}" "" "" must.must.must }
+{ booktitle empty$
+ { "no booktitle (name of special issue) for "
+ cite$ "/" crossref ". Why a crossref?" * * * * warning$
+ "}" "" "" must.must.must }
+ { volume empty$ {""} {") ("} if$ booktitle "}" must.must.must}
+ if$
+}if$
+newline$
+}
+FUNCTION {book}
+{ title type.last.char "numeral" =
+ { "\bridges{,\ }{}{,\ }{\ }{\ at~}{\ at~}"
+ "" "" must.must.must
+ newline$
+ }
+ { units empty.to.null "paras" =
+ { "\bridges{,\ para.~}{}{,\ paras.~}{\ }{,\ para.~}{,\ paras.}"
+ "" "" must.must.must
+ newline$
+ }
+ 'skip$
+ if$
+ }if$
+ "\lexibib{book}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{" must.must.must
+ volume empty$
+ { "" }
+ { "\volno\ " }
+ if$
+ author
+ "firstinitial" format.names "}{" must.must.must
+ booktitle empty$
+ { title "title" check "" "" must.must.must }
+ { booktitle ": " title must.ifthree.might
+ }if$
+ type empty.to.null "cmnd" =
+ type empty.to.null "command" =
+ type empty.to.null "command papers" =
+ or or
+ { ", " year "mo.dd.yy" format.date
+ ", " "Cmnd. "
+ * * *
+ series empty$
+ { "no.~" }
+ { "Ser.~" series ", No.~" * *
+ }if$
+ number "number" check
+ * *
+ "" "" must.must.must
+ }
+ 'skip$
+ if$
+ "}{}{}{" "(" "" must.must.must
+ editor empty$ translator empty$ and
+ { series empty$
+ 'skip$
+ { series " No.~" number
+ "endlabel" field.tag.no.combine ", " "" must.must.must }
+ if$
+ }
+ { editor translator either.or "firstinitial" format.names
+ translator empty$
+ { editor num.names$ #1 >
+ { " eds.\ " }
+ { " ed.\ " }
+ if$
+ }
+ { " trans.\ " }
+ if$
+ "" must.must.must
+ }if$
+ edition " ed.\ " "" might.ifone.must
+ type empty.to.null "cmnd" =
+ type empty.to.null "command" =
+ type empty.to.null "command papers" =
+ or or
+ { "" }
+ { year "mo.dd.yy" format.date
+ }if$
+ ")}" "" must.must.must
+ newline$
+}
+FUNCTION{incollection}
+{ "\lexibib{incollection}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{" must.must.must
+ author "lastonly" format.names "author" check
+ "}{" "" must.must.must
+ title "title" check
+ "}{" "" must.must.must
+ chapter empty$
+ { "\\in \\" }
+ { "\\" type empty$
+ { "chapter " chapter "chapter" check " of \\" * * * }
+ { type " " chapter "chapter" check " of \\" * * * *
+ }if$
+ }if$
+ booktitle "booktitle" check
+ "}{" must.must.must
+ pages "short" format.pages "pages" check
+ "}{" "(" must.must.must
+ editor empty$ translator empty$ and
+ { series empty$
+ 'skip$
+ { series " No.~" number
+ "endlabel" field.tag.no.combine ", " "" must.must.must }
+ if$
+ }
+ { editor booktranslator either.or "firstinitial" format.names
+ booktranslator empty$
+ { editor num.names$ #1 >
+ { " eds.\ " }
+ { " ed.\ " }
+ if$
+ }
+ { " trans.\ " }
+ if$
+ "" must.must.must
+ }if$
+ edition " ed.\ " "" might.ifone.must
+ year "mo.dd.yy" format.date ")}" "" must.must.must
+ newline$
+}
+FUNCTION{inbook}
+{ "\lexibib{inbook}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{" must.must.must
+ author "firstinitial" format.names "author" check
+ "}{" "" must.must.must
+ title booktitle =
+ { chapter empty$
+ { "no chapter or separate title for inbook entry " cite$ * warning$
+ }
+ { "{\rm " "Chapter" type either.or.nowarning
+ " " chapter " of} " * * * *
+ }if$
+ }
+ { ""
+ }if$
+ title "title" check
+ "}{" must.must.must
+ title booktitle =
+ { "" }
+ { chapter empty$
+ { "{\rm in} " }
+ { type empty$
+ { "{\rm Chapter " chapter " of} " * * }
+ { "{\rm " type " " chapter " of} " * * * *
+ }if$
+ }if$
+ }if$
+ booktitle "booktitle" check
+ "}{" must.must.must
+ pages "short" format.pages "pages" check
+ "}{" "(" must.must.must
+ translator empty$
+ { series empty$
+ 'skip$
+ { series " No.~" number
+ "endlabel" field.tag.no.combine ", " "" must.must.must }
+ if$
+ }
+ { translator "firstinitial" format.names
+ " trans.\ "
+ "" must.must.must
+ }if$
+ edition " ed.\ " "" might.ifone.must
+ year "mo.dd.yy" format.date ")" "}" must.must.must
+ newline$
+}
+FUNCTION{booklet}
+{ "\lexibib{booklet}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{" must.must.must
+ author "full" format.names "}{" "" must.must.must
+ "\\" title "\\}{}{}{(" must.must.must
+ howpublished ", " "" might.ifone.must
+ year "mo.dd.yy" format.date
+ ")}" "" must.must.must
+ newline$
+}
+FUNCTION {techreport}
+{"\lexibib{techreport}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{" must.must.must
+ institution author either.or.nowarning
+ "full" format.names "author & institution" check
+ "}{" title "title" check must.must.must
+ "}{}{}{" "(" "" must.must.must
+ author empty$
+ 'skip$
+ {institution "\ " "" might.ifone.must
+ }if$
+ type empty$
+ { "Technical report" }
+ { type
+ }if$
+ type empty.to.null "Cmnd" =
+ { "\ " }
+ { " No.~"
+ }if$
+ number "endlabel" field.tag.no.combine
+ ", " "" must.must.must
+ year "mo.dd.yy" format.date
+ "" ")}" must.must.must
+ newline$
+ }
+FUNCTION {mastersthesis}
+{"\lexibib{mastersthesis}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "}{" "" must.must.must
+ author
+ "full" format.names "author" check
+ "}{" title "title" check must.must.must
+ "}{}{}{("
+ type empty$
+ { "Master's Thesis" }
+ { type
+ }if$
+ ", " must.must.must
+ institution "institution" check ", " "" might.ifone.must
+ year "mo.dd.yy" format.date
+ ")" "}" must.must.must
+ newline$
+ }
+FUNCTION {clear.cite.vars}
+ {
+"" 'volume.var :=
+"" 'number.var :=
+"" 'journal.var :=
+"" 'pages.var :=
+"" 'year.var :=
+ }
+FUNCTION {case}
+{ cites empty.to.null "=" *
+ journal empty$
+ { parse.one.cite }
+ { volume empty.to.null 'volume.var :=
+ number empty.to.null 'number.var :=
+ journal 'journal.var :=
+ pages empty.to.null 'pages.var :=
+ year empty.to.null 'year.var :=
+ }if$
+ volume.var empty$ not number.var empty$ not and
+ { "\bridges{,\ p.~}{,\ }{,\ }{\ }{\ at~}{\ at~}"
+ "" "" must.must.must
+ newline$ }
+ 'skip$
+ if$
+ "\lexibib{case}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{}{" must.must.must
+ title empty$
+ { "Decision of the " court "court" check "" must.must.must
+ " (" j.format.division ")" iftwo.might.iftwo
+ ", " "" "" must.must.must
+ casedate "month.dd.yy" format.date "" "" must.must.must
+ "}{" "" "" must.must.must
+ }
+ { title "}{" "" must.must.must }
+ if$
+ volume.var empty$ not number.var empty$ not and
+ { journal.var "journal" check ", v.~" volume.var must.must.must
+ ", n.~" number.var "}{" must.must.must }
+ { volume.var empty$
+ { "[" year.var "mo.dd.yy" format.date "] " iftwo.might.iftwo
+ number.var "\ " journal.var "journal" check might.ifone.must
+ "}{" "" "" must.must.must }
+ { volume.var "\ " journal.var "journal" check empty.to.null
+ might.ifone.must
+ "}{" "" "" must.must.must
+ }if$
+ }if$
+pages.var "short" format.pages "pages" check
+"}{"
+"("
+must.must.must
+volume.var empty$
+ 'skip$
+ { year.var "mo.dd.yy" format.date "" "" must.must.must
+ }if$
+crossref empty$
+{ ")}" "" "" must.must.must }
+{ booktitle empty$
+ { "no booktitle (name of special issue) for "
+ cite$ "/" crossref * * * warning$
+ ")}" "" "" must.must.must }
+ { volume.var empty$ {""} {") ("} if$ booktitle "}" must.must.must}
+ if$
+}if$
+{ duplicate$ "=" = not }
+{ parse.one.cite
+ "={" "" "" must.must.must
+ volume.var empty$ not number.var empty$ not and
+ { journal.var "journal" check ", v.~" volume.var must.must.must
+ ", n.~" number.var "}{" must.must.must }
+ { volume.var empty$
+ { "[" year.var "mo.dd.yy" format.date "] " iftwo.might.iftwo
+ number.var "\ " journal.var "journal" check might.ifone.must
+ "}{" "" "" must.must.must }
+ { volume.var "\ " journal.var "journal" check empty.to.null
+ might.ifone.must
+ "}{" "" "" must.must.must
+ }if$
+ }if$
+pages.var "short" format.pages "pages" check
+"}{"
+""
+must.must.must
+volume.var empty$
+ 'skip$
+ { "(" year.var "mo.dd.yy" format.date ")" must.must.must
+ }if$
+crossref empty$
+{ "}" "" "" must.must.must }
+{ booktitle empty$
+ { "no booktitle (name of special issue) for "
+ cite$ "/" crossref * * * warning$
+ "}" "" "" must.must.must }
+ { volume.var empty$ {""} {") ("} if$ booktitle "}" must.must.must}
+ if$
+}if$
+}while$
+pop$
+clear.cite.vars
+newline$
+annote empty.to.null write$ newline$
+}
+FUNCTION {j.statute}
+ { "\lexibib{jstatute}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{}{" must.must.must
+ title "title" check empty.to.null "}{}{}{" "" must.must.must
+ title empty$ {""} {"("} if$
+ "" "" must.must.must
+ number empty$
+ 'skip$
+ { type empty$
+ { "Law" }
+ { type
+ }if$
+ "\ no.~" *
+ number "number" check " of "
+ iftwo.might.iftwo
+ }
+ if$
+ year "yy" format.date
+ title empty$ {""} {")"} if$
+ "}" must.must.must
+ newline$
+ }
+FUNCTION { s.statute }
+{ "\lexibib{statute}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{}{" must.must.must
+ title "title" check ", No.~" number
+ "endlabel" field.tag.no.combine
+ number empty$
+ { "\ " * }
+ { "\ of " * }
+ if$
+ year "mo.dd.yy" format.date "}{}{}{}" must.must.must
+ newline$
+}
+FUNCTION { e.statute }
+{ "\lexibib{statute}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{}{" must.must.must
+ title "title" check "\ "
+ year "mo.dd.yy" format.date must.must.must
+ "}{}{}{}" "" "" must.must.must
+ newline$
+}
+FUNCTION { statute }
+ { type build.bridges
+ jurisdiction empty.to.null duplicate$
+ "japan" =
+ { pop$ j.statute }
+ { duplicate$ "singapore" =
+ { pop$ s.statute }
+ { duplicate$ "england" =
+ { pop$ e.statute }
+ { pop$ "IMPORTANT: unknown jurisdiction for " cite$ * warning$
+ }if$
+ }if$
+ }if$
+ }
+FUNCTION {unpublished}
+{ "\lexibib{book}{" cite$ "}{" must.must.must
+ get.a.kinda.sort.key "" "}{" must.must.must
+ author "firstinitial" format.names "}{" "" must.must.must
+ title "title" check "" "" must.must.must
+ "}{}{}{" "(" "" must.must.must
+ note
+ ")}" "" must.must.must
+ newline$
+}
+FUNCTION {default.type} { book }
+READ
+EXECUTE {hello}
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+INTEGERS { et.al.char.used }
+
+FUNCTION {initialize.et.al.char.used}
+{ #0 'et.al.char.used :=
+}
+
+EXECUTE {initialize.et.al.char.used}
+
+FUNCTION {format.lab.names}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames #1 >
+ { numnames #4 >
+ { #3 'namesleft := }
+ { numnames 'namesleft := }
+ if$
+ #1 'nameptr :=
+ ""
+ { namesleft #0 > }
+ { nameptr numnames =
+ { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ numnames #4 >
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ 'skip$
+ if$
+ }
+ { s #1 "{v{}}{l{}}" format.name$
+ duplicate$ text.length$ #2 <
+ { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.key.organization.label}
+{ author empty$
+ { key empty$
+ { organization empty$
+ { cite$ #1 #3 substring$ }
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.organization.label}
+{ editor empty$
+ { key empty$
+ { organization empty$
+ { cite$ #1 #3 substring$ }
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.key.organization.label
+ 'author.key.label
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year "yy" format.date purify$ #-1 #2 substring$
+ *
+ 'label :=
+ year "yy" format.date purify$ #-1 #4 substring$
+ *
+ sortify 'sort.label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { "et al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {case.sort}
+{ title empty$
+ { key empty$
+ { "to sort, need title or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { title sort.format.title }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ { type$ "case" =
+ 'case.sort
+ { type$ "statute" =
+ 'case.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ " "
+ *
+ year "yy" format.date sortify
+ *
+ " "
+ *
+ title empty.to.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+FUNCTION {begin.bib}
+{ et.al.char.used
+ { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+ 'skip$
+ if$
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+}
+
+EXECUTE {begin.bib}
+
+ITERATE {call.type$}
+%%
+%%
+%% End of file `law.bst'.