I'm having a string like
ATTRIBUTE ISC_FLOW OF XXX1234 : ENTITY IS FLOW_VERIFY(IDCODE) & INITIALIZE & (IDCODE WAIT TCK 1 32:01805043*0FFFFFFF), & FLOW_ENABLE & INITIALIZE & (ISC_ENABLE WAIT TCK 3, 20.0E-3), & FLOW_ERASE &
INITIALIZE & (ISC_ERASE WAIT TCK 3, 200.0E-3) & (ISC_DISCHARGE WAIT TCK 3, 200.0E-3), & FLOW_PRELOAD & INITIALIZE & (SAMPLE 68:0 WAIT TCK 1), &
FLOW_PROGRAM(ARRAY) & INITIALIZE & (ISC_ADDRESS_INIT WAIT TCK 1) & REPEAT 100& (ISC_PROGRAM 172:? WAIT TCK 3, 13.0E-3), & FLOW_VERIFY(ARRAY) & INITIALIZE & (ISC_ADDRESS_SHIFT 100:$ADDR=800000000000000000000000& 0 & WAIT TCK 1) & REPEAT 100& (ISC_READ WAIT TCK 1, 1.0E-3 172:?:CRC) & (ISC_ADDRESS_SHIFT 100:$ADDR>>1 WAIT TCK 1)
I need write a pattern that should split each FLOW seperately.
So that the result will be like
1. FLOW_VERIFY(IDCODE) INITIALIZE (IDCODE WAIT TCK 1 32:01805043*0FFFFFFF)
2. FLOW_ENABLE INITIALIZE (ISC_ENABLE WAIT TCK 3, 20.0E-3)
3. FLOW_ERASE INITIALIZE (ISC_ERASE WAIT TCK 3, 200.0E-3) (ISC_DISCHARGE WAIT TCK 3, 200.0E-3)
4. FLOW_PRELOAD INITIALIZE (SAMPLE 68:0 WAIT TCK 1)
5. FLOW_PROGRAM(ARRAY) INITIALIZE (ISC_ADDRESS_INIT WAIT TCK 1) REPEAT 100 (ISC_PROGRAM 172:? WAIT TCK 3, 13.0E-3)
6. FLOW_VERIFY(ARRAY) INITIALIZE (ISC_ADDRESS_SHIFT 100:$ADDR=800000000000000000000000 0 WAIT TCK 1) REPEAT 100 (ISC_READ WAIT TCK 1, 1.0E-3 172:?:CRC) (ISC_ADDRESS_SHIFT 100:$ADDR>>1 WAIT TCK 1)
I've tried many patterns but i could not parse it properly.
Here is the pattern i've finally tried.
"(?<Func>[a-z0-9\\(\\)_]*)[\r\t\n ]*&[\r\t\n ]*(?<Instr>(INITIALIZE|REPEAT|TERMINATE))[\r\t\n ]*[0-9]*&(?<Action>[0-9a-z \r\t\n:*,\\(\\).\\-_\\?!$=]*)"
Please help me to write a pattern that seperates each FLOW value from the above string.