Pseudepapterus

Pseudepapterus is a genus of driftwood catfishes found in tropical South America.

Pseudepapterus
Scientific classification
Kingdom: Animalia
Phylum: Chordata
Class: Actinopterygii
Order: Siluriformes
Family: Auchenipteridae
Subfamily: Auchenipterinae
Genus: Pseudepapterus
Steindachner, 1915
Type species
Auchenipterus hasemani
Steindachner, 1915

Species

There are three described species in this genus:

  • Pseudepapterus cucuhyensis J. E. Böhlke, 1951
  • Pseudepapterus gracilis Ferraris & Vari, 2000
  • Pseudepapterus hasemani (Steindachner, 1915)
gollark: ```python# parsita-based pseudocode syntax parserfrom stmt import *from parsita import *from parsita.util import constantdef compose(f, g): return lambda x: f(g(x))def map_expr(x): start, end = x if end == "": return start return Op([start, end[1]], end[0])def map_unop_expr(x): return Op(x[1], x[0])def aliases(name, aliases): p = lit(name) for alias in aliases: p |= (lit(alias) > (lambda _: name)) return pclass ExprParser(TextParsers): ε = lit("") IntLit = reg("\-?[0-9]+") > compose(IntLit, int) StrLit = "'" >> reg("[^']*") << "'" > StrLit # TODO escapes (not in "spec" but could be needed) FloatLit = reg("\-?[0-9]+\.[0-9]+") > compose(FloatLit, float) Identifier = reg("[a-zA-Z_]+[a-zA-Z_0-9]*") > Var BracketedExpr = "(" >> Expr << ")" UnaryOperator = lit("NOT") Start = FloatLit | StrLit | IntLit | BracketedExpr | (UnaryOperator & Expr > map_unop_expr) | Identifier # avoid left recursion problems by not doing left recursion # AQA pseudocode does not appear to have a notion of "operator precedence", simplifying parsing logic nicely BinaryOperator = aliases("≤", ["<="]) | aliases("≠", ["!="]) | aliases("≥", [">="]) | lit("DIV") | lit("MOD") | lit("AND") | lit("OR") | reg("[+/*\-=<>]") End = (BinaryOperator & Expr) | ε Expr = (Start & End) > map_exprparse = ExprParser.Expr.parsex = parse("1+2+3 != 6 AND NOT 4 AND x + y")if isinstance(x, Failure): print(x.message)else: print(x.value)```
gollark: <@332271551481118732> Expression parsing is done, I think.
gollark: I wonder if AQA pseudocode *does* have operator precedence. We may need to harvest exam papers.
gollark: This will allow 3% more efficient harnessing of character set anomalies.
gollark: The parser supports anomalous unicode, muahaha.

References


    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.