git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Underscore syntax for object getters
99d3fd8Gary Burgess
examples/passing/ObjectGetter.purs+4−4
@@ -1,11 +1,11 @@
1module Main where
1module Main where
2
2
3−getX = (.x)
3+getX = _.x
4
4
5point = { x: 1, y: 0 }
5point = { x: 1, y: 0 }
6
6
7main = do
7main = do
8 Debug.Trace.print $ getX point
8 Debug.Trace.print $ getX point
9− Debug.Trace.trace $ (." 123 string Prop Name ") { " 123 string Prop Name ": "OK" }
9+ Debug.Trace.trace $ _." 123 string Prop Name " { " 123 string Prop Name ": "OK" }
10− Debug.Trace.trace $ ((.x) >>> (.y)) { x: { y: "Nested" } }
10+ Debug.Trace.trace $ (_.x >>> _.y) { x: { y: "Nested" } }
11− Debug.Trace.trace $ (.value) { value: "Done!" }
11+ Debug.Trace.trace $ _.value { value: "Done!" }
src/Language/PureScript/Parser/Declarations.hs+2−2
@@ -361,7 +361,7 @@ parseValueAtom = P.choice
361-- Parse an expression in backticks or an operator
361-- Parse an expression in backticks or an operator
362--
362--
363parseInfixExpr :: TokenParser Expr
363parseInfixExpr :: TokenParser Expr
364−parseInfixExpr = P.between tick tick parseValue
364+parseInfixExpr = P.between tick tick parseValue
365 <|> Var <$> parseQualified (Op <$> symbol)
365 <|> Var <$> parseQualified (Op <$> symbol)
366
366
367parseOperatorSection :: TokenParser Expr
367parseOperatorSection :: TokenParser Expr
@@ -400,7 +400,7 @@ parseDoNotationElement = P.choice
400 , P.try (DoNotationValue <$> parseValue) ]
400 , P.try (DoNotationValue <$> parseValue) ]
401
401
402parseObjectGetter :: TokenParser Expr
402parseObjectGetter :: TokenParser Expr
403−parseObjectGetter = ObjectGetter <$> parens (dot *> C.indented *> (lname <|> stringLiteral))
403+parseObjectGetter = ObjectGetter <$> (underscore *> C.indented *> dot *> C.indented *> (lname <|> stringLiteral))
404
404
405-- |
405-- |
406-- Parse a value
406-- Parse a value