Zum Inhalt springen

Wikipedia:Literatur/Parser

aus Wikipedia, der freien Enzyklopädie

Bei der Verwendung einheitlicher Formatierungsregeln von Literaturangaben können die einzelnen Bestandteile mittels eines Parsers automatisch ermittelt werden.

Lexikalischer Scanner

Zunächst werden Leerzeichen normalisiert.

Die einzelnen Tokens sind folgende

<nowiki>
 SP => "[ \t]*",
 LINK => "\\[\\[[^\\]]+\\]\\]"  # (§10) TODO: add in parser or lexer

# Verfasser (§1)
 NAME  => "([^(,]+",
 JOB   => "[(][^)]+[)]",
 ETAL  => "et al[.]",

# Titel (§2) 
  TITLE => "''([^']|'[^'])+''[.]?",  # don't be pedantic: dot at the end may be omitted

# "In:" (§3)
  IN => "[Ii]n:",
   
# Datum (§4)
  # $rEtwa  = "(um\s+|ca[.]?[ ]+|etwa[ ]+)"
  # $rDay   = "(([1-9]|[12][0-9]|30|31)[.])"
  # $rMonth = "(Jan|Januar|Feb|Februar|März|Maerz|....)"
  # $rYear  = ...
  # $rOJahr = "o[.]\s*J(ahr|.)?\s*"
  DATUM => "($rEtwa?$rDay?[ ]*$rMonth[ ]*$rYear" # noch unvollständig
  
# Auflage (§5)
  AUFLAGE => "[1-9][0-9]*[.]\s+Aufl([.]|age)"

# Verlag und Ort (§6)
  ORT => "[^/,]+(/[^/,])*(\s*\\[u[.]A[.]\\])?"
  VERLAG => "[^,]+"

# Fortlaufende Werke (§7)
 ...

# Seitenzahl (§8)
  SEITEN => "S[.][ ]+[0-9]+(ff?[.]?|[-–][ ]+[0-9]+)?"
<nowiki>

Weblinks