grammar.peg 459 B

12345678910111213141516171819202122232425262728293031
  1. {
  2. package grammar
  3. }
  4. Input = (Std / EOL)+
  5. LabelUpper = [A-Z_]+ {
  6. fmt.Println(string(c.text))
  7. return c.text, nil
  8. }
  9. Std = LabelUpperLine (LabelLine+ / UpperLabelLine+)
  10. LabelUpperLine = LabelUpper EOL
  11. LabelLine = [\t] Label EOL
  12. UpperLabelLine = [\t] (LabelUpper _)+ UpperLabel EOL
  13. Label = [a-z_]+ {
  14. fmt.Println(string(c.text))
  15. return c.text, nil
  16. }
  17. _ = [ \t]+
  18. EOL = _? Comment? ("\r\n" / "\n\r" / "\r" / "\n" / EOF)
  19. EOF = !.
  20. Comment = "//" [^\r\n]*