on master help sign in
Disallow primes in variable names
commit84711ec0f49370ed7912048ee60d875fda2d4c86 authorEvan Czaplicki <evancz@users.noreply.github.com> dateMon 10 Oct 2016, 12:41 (10 years ago) parent7e69419
2 files changed+20−1
src/Parse/Helpers.hs+6−1 src/Reporting/Error/Syntax.hs+14
src/Parse/Helpers.hs+6−1
@@ -90,7 +90,12 @@ rLabel = lowVar
9090
9191innerVarChar :: IParser Char
9292innerVarChar =
93− alphaNum <|> char '_' <|> char '\'' <?> "more letters in this name"
93+ choice
94+ [ alphaNum
95+ , char '_'
96+ , char '\'' >> fail Syntax.prime
97+ ]
98+ <?> "more letters in this name"
9499
95100
96101makeVar :: IParser Char -> IParser String
src/Reporting/Error/Syntax.hs+14
@@ -328,9 +328,15 @@ keyword kwd =
328328 "KEYWORD=" ++ kwd
329329
330330
331+prime :: String
332+prime =
333+ "PRIME"
334+
335+
331336data SpecialMessage
332337 = MsgKeyword String
333338 | MsgTab
339+ | MsgPrime
334340
335341
336342extractSpecialMessage :: String -> Maybe SpecialMessage
@@ -341,6 +347,9 @@ extractSpecialMessage message =
341347 else if tab == message then
342348 Just MsgTab
343349
350+ else if prime == message then
351+ Just MsgPrime
352+
344353 else
345354 Nothing
346355
@@ -393,6 +402,11 @@ parseErrorReport messages =
393402 , Just "I am looking for spaces, not tabs."
394403 )
395404
405+ Just MsgPrime ->
406+ ( "Ran into a single quote in a variable name. This was removed in 0.18!"
407+ , Just "Change it to a number or an underscore: x' => x1"
408+ )
409+
396410 Nothing ->
397411 ( msg
398412 , Nothing