Merge branch 'generic-units' into Umur-reducer-dev
packages/squiggle-lang/src/rescript/Reducer/Reducer_Peggy/Reducer_Peggy_GeneratedParser.js
This commit is contained in:
commit
0124181bce
|
@ -251,6 +251,10 @@ describe("Peggy parse", () => {
|
|||
"{(::map (::$_constructArray_$ (1 2 3)) {|:x| {(::add :x 1)}})}",
|
||||
)
|
||||
})
|
||||
describe("unit", () => {
|
||||
testParse("1m", "{(::fromUnit_m 1)}")
|
||||
testParse("1m+2cm", "{(::add (::fromUnit_m 1) (::fromUnit_cm 2))}")
|
||||
})
|
||||
})
|
||||
|
||||
describe("parsing new line", () => {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -248,8 +248,7 @@ basicValue = valueConstructor / basicLiteral
|
|||
|
||||
basicLiteral
|
||||
= string
|
||||
/ float
|
||||
/ integer
|
||||
/ number
|
||||
/ boolean
|
||||
/ dollarIdentifier
|
||||
|
||||
|
@ -263,6 +262,15 @@ string 'string'
|
|||
= characters:("'" @([^'])* "'") {return nodeString(characters.join(''))}
|
||||
/ characters:('"' @([^"])* '"') {return nodeString(characters.join(''))}
|
||||
|
||||
number = number:(float / integer) unit:identifier?
|
||||
{
|
||||
if (unit === null)
|
||||
{ return number }
|
||||
else
|
||||
{ return makeFunctionCall('fromUnit_'+unit.value, [number])
|
||||
}
|
||||
}
|
||||
|
||||
integer 'integer'
|
||||
= d+ !"\." ![e]i
|
||||
{ return nodeInteger(parseInt(text()))}
|
||||
|
|
Loading…
Reference in New Issue
Block a user