Advertisement
beng

Untitled

Mar 10th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. grammar TR29;
  2.  
  3. ZWJ: '\u200D';
  4. fragment VS15: '\uFE0E';
  5. fragment VS16: '\uFE0F';
  6. fragment NonspacingMark: [\p{Nonspacing_Mark}];
  7. fragment TextPresentationCharacter: [\p{EmojiPresentation=TextDefault}];
  8. fragment EmojiPresentationCharacter: [\p{EmojiPresentation=EmojiDefault}];
  9. fragment TextPresentationSequence: EmojiPresentationCharacter VS15;
  10. fragment EmojiPresentationSequence: TextPresentationCharacter VS16;
  11. fragment EmojiModifierSequence:
  12. [\p{Grapheme_Cluster_Break=E_Base}] [\p{Grapheme_Cluster_Break=E_Modifier}];
  13. fragment EmojiFlagSequence:
  14. [\p{Grapheme_Cluster_Break=Regional_Indicator}] [\p{Grapheme_Cluster_Break=Regional_Indicator}];
  15.  
  16. fragment EmojiCombiningSequence:
  17. ( EmojiPresentationSequence
  18. | TextPresentationSequence
  19. | EmojiPresentationCharacter )
  20. NonspacingMark*;
  21. fragment EmojiCoreSequence:
  22. EmojiCombiningSequence
  23. | EmojiModifierSequence
  24. | EmojiFlagSequence;
  25. fragment EmojiZWJElement:
  26. EmojiPresentationSequence
  27. | EmojiModifierSequence
  28. | EmojiPresentationCharacter;
  29. fragment EmojiZWJSequence:
  30. EmojiZWJElement (ZWJ EmojiZWJElement)+;
  31. EmojiSequence:
  32. ( EmojiZWJSequence
  33. | EmojiCoreSequence )
  34. ( Extend | ZWJ | SpacingMark )*;
  35.  
  36. Extend: [\p{Grapheme_Cluster_Break=Extend}];
  37. SpacingMark: [\p{Grapheme_Cluster_Break=SpacingMark}];
  38. Prepend: [\p{Grapheme_Cluster_Break=Prepend}];
  39. NonControl: [\P{Grapheme_Cluster_Break=Control}];
  40. CRLF: [\p{Grapheme_Cluster_Break=CR}][\p{Grapheme_Cluster_Break=LF}];
  41. HangulSyllable:
  42. [\p{Grapheme_Cluster_Break=L}]* [\p{Grapheme_Cluster_Break=V}]+ [\p{Grapheme_Cluster_Break=T}]*
  43. | [\p{Grapheme_Cluster_Break=L}]* [\p{Grapheme_Cluster_Break=LV}] [\p{Grapheme_Cluster_Break=V}]* [\p{Grapheme_Cluster_Break=T}]*
  44. | [\p{Grapheme_Cluster_Break=L}]* [\p{Grapheme_Cluster_Break=LVT}] [\p{Grapheme_Cluster_Break=T}]*
  45. | [\p{Grapheme_Cluster_Break=L}]+
  46. | [\p{Grapheme_Cluster_Break=T}]+;
  47.  
  48. emoji_sequence: EmojiSequence;
  49.  
  50. grapheme_cluster:
  51. CRLF
  52. | Prepend* ( emoji_sequence | HangulSyllable | NonControl ) ( Extend | ZWJ | SpacingMark )*;
  53.  
  54. graphemes: grapheme_cluster* EOF;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement