Amphiscapha

Amphiscapha is a fossil gastropod mollusk, or less likely a monoplacophoran, genus from the Pennsylvanian and Lower Permian of North and South America, included in the family Euomphalidae. It is sometimes regarded as a subgenus of Straparollus, S. (Amphiscapha) Knight 1942

Amphiscapha
Temporal range: Penn - L Perm
Scientific classification
Kingdom:
Phylum:
Class:
Superfamily:
Family:
Genus:
Amphiscapha

J.B. Knight, 1942

Description

The shell in this genus is hyper strophic discoidal, with a flat base and a concave upper side. The location of what is presumed to be the exhalent channel is marked by a smooth or rugose ridge along the upper-outer margin, which lies along the edge of a flat to concave outer rim.

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.