Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pluggin REXX Issues on Visual Studio Code - Case 32762317 #12

Open
RedGoldPhoenix opened this issue Jul 1, 2021 · 8 comments
Open

Pluggin REXX Issues on Visual Studio Code - Case 32762317 #12

RedGoldPhoenix opened this issue Jul 1, 2021 · 8 comments
Labels
bug Something isn't working good first issue Good for newcomers

Comments

@RedGoldPhoenix
Copy link

Hello

We are using the version below :

Visual Studio Code Version: 1.57.1 (system setup)
Commit: 507ce72a4466fbb27b715c3722558bb15afa9f48
Date: 2021-06-17T13:28:07.755Z
Electron: 12.0.7
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Windows_NT x64 10.0.17763

Explorer for Endevor : 0.12.1
java version : 1.8.0_281
JZOS batch Launcher Version : 2.4.8 2019-05-03
Endevor Webservice version: 2.3-20210126-18E52BE

apache-tomcat-9.0.4420:40 18/06/202120:40 18/06/2021
Parameters Lang="EN"
Locale=""
TimeZone="GMT-1.0"
CharacterSet="ISO8859-1"
CodePage="cp01147"

Brigde for git 2.7.1
command to exec : java -Dfile.encoding=UTF-8 -Djavax.net.ssl.trustStore=bridgestore.jks -Djavax.net.ssl.trustStorePassword=password -jar BridgeForGit-2.7.1.jar

Rexx Language Support : v0.0.17

Good evening,

We use the Rexx plunning and discovert some alert and we don't understand why we have it.

To read the REXX programe form the Z/Os, we retrieve the element via Bridge for git put the element on Azure Devops and clone the branch on Visual Studio Code to modify it

The Rexx are readable and the Code page is ISO 8859-1 and the End of line Sequence is CRLF

When we edit the Rexx Program, the REXX plugin scan it and underline the issues

I listed below some of them.
Could you help me to understand what I must do to solve them:

I clic right to copy the message

Message 1:
no viable alternative at input 'Do F=1 To NDVTBL.0 \r\n If Substr(NDVTBL.F,1,1) = '' Then Iterate \r\n If Pos('MFID=',NDVTBL.F)= 0 Then Iterate \r\n NEWLINE=Translate(NDVTBL.F,'','=') \r\n NEWLINE=Translate(NEWLINE,'',',') \r\n NEWLINE=Translate(NEWLINE,'','.') \r\n USERID=Word(NEWLINE,3) \r\n If Left(USERID,4)='GUEN' Then Iterate \r\n If Left(USERID,2)='CO' Then Iterate \r\n FNAME =Word(NEWLINE,5);LNAME =Word(NEWLINE,6) \r\n Call SELECT_MLA030 \r\n If Word(MLA030IN.ML,4) = USERID Then Iterate \r\n US=US+1;Say Right(US,4) USERID FNAME LNAME \r\n Call STACK_STEMS \r\nEnd F \r\nMAX_W=W \r\nIf MAX_W = 0 Then Do \r\n CTRL=4;Say 'there is no new userid to be inserted.' \r\nEnd \r\nElse Do \r\n Call WRITE_OUTPUT \r\nEnd \r\n/---------------------------------* \r\n * 2nd compare * \r\n ---------------------------------/ \r\nSay '>' \r\nSay '2.compare the email addresses of "esmtptbl" and "ed.mla030"' \r\nSay ' USERID ESMTPTBL ED.MLA030' \r\nSay ' ------ ----------------------------- -------------------------' \r\nDo ML=1 To MLA030IN.0 \r\n If Word(MLA030IN.ML,2) <> 'USR=' Then Iterate \r\n Do F=1 To NDVTBL.0 \r\n If Substr(NDVTBL.F,1,1) = '' Then Iterate \r\n If Pos('MFID=',NDVTBL.F)= 0 Then Iterate \r\n PARSE VAR NDVTBL.F '$ESMTP MFID='USERID',EMAILID='EMAILID \r\n If USERID <>Word(MLA030IN.ML,4) Then Iterate \r\n If EMAILID =Word(MLA030IN.ML,6) Then Leave \r\n Say '' USERID Substr(EMAILID,1,30) Substr(Word(MLA030IN.ML,6),1,30) \r\n Leave \r\n End F \r\nEnd ML \r\n/--------------------------------- \r\n * 3rd compare * \r\n ---------------------------------/ \r\nSay '>' \r\nCall READ_INPUT3 ;If CTRL > 4 Then Signal END_OF_JOB \r\nSay '>' \r\nSay '3.compare the zSECURE database with "esmtptbl"' \r\nSay ' USERID zSECURE ESMTPTBL' \r\nSay ' ------ ------------------------------------- -------------------------'\r\nDo VG=1 To VANGUAR.0 \r\n/* If Word(VANGUAR.VG,2)='DFENMIG' Then Iterate \r\n If Substr(Word(VANGUAR.VG,1),3,1)='$' Then Iterate */ \r\n If Left(Word(VANGUAR.VG,1),3,)'

Message 2:
no viable alternative at input 'Do ML=1 To MLA030IN.0 \r\n If Word(MLA030IN.ML,2) <> 'USR=' Then Iterate \r\n Do F=1 To NDVTBL.0 \r\n If Substr(NDVTBL.F,1,1) = '' Then Iterate \r\n If Pos('MFID=',NDVTBL.F)= 0 Then Iterate \r\n PARSE VAR NDVTBL.F '$ESMTP MFID='USERID',EMAILID='EMAILID \r\n If USERID <>Word(MLA030IN.ML,4) Then Iterate \r\n If EMAILID =Word(MLA030IN.ML,6) Then Leave \r\n Say '' USERID Substr(EMAILID,1,30) Substr(Word(MLA030IN.ML,6),1,30) \r\n Leave \r\n End F \r\nEnd ML \r\n/--------------------------------- \r\n * 3rd compare * \r\n ---------------------------------/ \r\nSay '>' \r\nCall READ_INPUT3 ;If CTRL > 4 Then Signal END_OF_JOB \r\nSay '>' \r\nSay '3.compare the zSECURE database with "esmtptbl"' \r\nSay ' USERID zSECURE ESMTPTBL' \r\nSay ' ------ ------------------------------------- -------------------------'\r\nDo VG=1 To VANGUAR.0 \r\n/* If Word(VANGUAR.VG,2)='DFENMIG' Then Iterate \r\n If Substr(Word(VANGUAR.VG,1),3,1)='$' Then Iterate */ \r\n If Left(Word(VANGUAR.VG,1),3,)'

Message 2:
extraneous input ')' expecting {KWD_ADDRESS, KWD_ARG, KWD_BY, KWD_CALL, KWD_DIGITS, KWD_DO, KWD_DROP, KWD_ELSE, KWD_END, KWD_ENGINEERING, KWD_ERROR, KWD_EXIT, KWD_EXPOSE, KWD_EXTERNAL, KWD_FAILURE, KWD_FOR, KWD_FOREVER, KWD_FORM, KWD_FUZZ, KWD_HALT, KWD_IF, KWD_INTERPRET, KWD_ITERATE, KWD_LEAVE, KWD_NAME, KWD_NOP, KWD_NOVALUE, KWD_NUMERIC, KWD_OFF, KWD_ON, KWD_OPTIONS, KWD_OTHERWISE, KWD_PARSE, KWD_PROCEDURE, KWD_PULL, KWD_PUSH, KWD_QUEUE, KWD_RETURN, KWD_SAY, KWD_SCIENTIFIC, KWD_SELECT, KWD_SIGNAL, KWD_SOURCE, KWD_SYNTAX, KWD_THEN, KWD_TO, KWD_TRACE, KWD_UNTIL, KWD_UPPER, KWD_VALUE, KWD_VAR, KWD_VERSION, KWD_WHEN, KWD_WHILE, KWD_WITH, BR_O, SPECIAL_VAR, NUMBER, CONST_SYMBOL, VAR_SYMBOL, STRING, PLUS, MINUS, NOT, COMMA}

Message 4:
mismatched input '£' expecting {, STMT_INCLUDE, KWD_ADDRESS, KWD_ARG, KWD_BY, KWD_CALL, KWD_DIGITS, KWD_DO, KWD_DROP, KWD_ELSE, KWD_END, KWD_ENGINEERING, KWD_ERROR, KWD_EXIT, KWD_EXPOSE, KWD_EXTERNAL, KWD_FAILURE, KWD_FOR, KWD_FOREVER, KWD_FORM, KWD_FUZZ, KWD_HALT, KWD_IF, KWD_INTERPRET, KWD_ITERATE, KWD_LEAVE, KWD_NAME, KWD_NOP, KWD_NOVALUE, KWD_NUMERIC, KWD_OFF, KWD_ON, KWD_OPTIONS, KWD_OTHERWISE, KWD_PARSE, KWD_PROCEDURE, KWD_PULL, KWD_PUSH, KWD_QUEUE, KWD_RETURN, KWD_SAY, KWD_SCIENTIFIC, KWD_SELECT, KWD_SIGNAL, KWD_SOURCE, KWD_SYNTAX, KWD_THEN, KWD_TO, KWD_TRACE, KWD_UNTIL, KWD_UPPER, KWD_VALUE, KWD_VAR, KWD_VERSION, KWD_WHEN, KWD_WHILE, KWD_WITH, BR_O, SPECIAL_VAR, NUMBER, CONST_SYMBOL, VAR_SYMBOL, STRING, CONCAT, EQ, PLUS, MINUS, MUL, DIV, QUOTINENT, REMAINDER, POW, NOT, OR, XOR, AND, CMPS_Eq, CMPS_Neq, CMPS_M, CMPS_L, CMPS_MEq, CMPS_LEq, CMPS_NM, CMPS_NL, CMP_NEq, CMP_LM, CMP_ML, CMP_M, CMP_L, CMP_MEq, CMP_LEq, CMP_NM, CMP_NL, EOL, SEMICOL}

Message 5:
mismatched input '"' expecting {, STMT_INCLUDE, KWD_ADDRESS, KWD_ARG, KWD_BY, KWD_CALL, KWD_DIGITS, KWD_DO, KWD_DROP, KWD_ELSE, KWD_END, KWD_ENGINEERING, KWD_ERROR, KWD_EXIT, KWD_EXPOSE, KWD_EXTERNAL, KWD_FAILURE, KWD_FOR, KWD_FOREVER, KWD_FORM, KWD_FUZZ, KWD_HALT, KWD_IF, KWD_INTERPRET, KWD_ITERATE, KWD_LEAVE, KWD_NAME, KWD_NOP, KWD_NOVALUE, KWD_NUMERIC, KWD_OFF, KWD_ON, KWD_OPTIONS, KWD_OTHERWISE, KWD_PARSE, KWD_PROCEDURE, KWD_PULL, KWD_PUSH, KWD_QUEUE, KWD_RETURN, KWD_SAY, KWD_SCIENTIFIC, KWD_SELECT, KWD_SIGNAL, KWD_SOURCE, KWD_SYNTAX, KWD_THEN, KWD_TO, KWD_TRACE, KWD_UNTIL, KWD_UPPER, KWD_VALUE, KWD_VAR, KWD_VERSION, KWD_WHEN, KWD_WHILE, KWD_WITH, BR_O, SPECIAL_VAR, NUMBER, CONST_SYMBOL, VAR_SYMBOL, STRING, PLUS, MINUS, NOT, EOL, SEMICOL}

For your information on the Z/Os, this REXX run every day and we have no issue with them.

To follow the case on Broadcom Site
https://ca-broadcom.wolkenservicedesk.com/wolken-support/mycases/request-details?requestId=

Best Regards

@ishche
Copy link

ishche commented Jul 2, 2021

Hello! Thank you for the feedback!

Could you please provide a minimal obfuscated code sample on which this error can be reproduced?

@RedGoldPhoenix
Copy link
Author

Hello Yuriy
On the Broadcom case you have access to my contact
Send me an email to organize a Webex Meeting
With the security policy I can send or share with you on Github the file but I did it via the case open on Broadcom site
Best Regard

@ishche
Copy link

ishche commented Jul 7, 2021

Hello!
I'm sorry, I don't have access to that information. The issue that I see from the error message is that your program contains an invalid comment format.
Something like this one:

/---------------------------------*
 * text * 
 ---------------------------------/ 

Can you confirm that?

@RedGoldPhoenix
Copy link
Author

Hello Yuriy
Sorry for the delay I don't see your message before as I don't have any alerts..
I can tell you I have no issue with this REXX on Mainframe for for me that is not this problem
That's really a pity that I'm not allowed to give you the file I put on the broadcom website

@RedGoldPhoenix
Copy link
Author

Hello Yuriy
I saw that you received file from Xiaopu did you have time to read the email and understand my issue?
Best Regards

@ishche
Copy link

ishche commented Aug 30, 2021

Hello! Sorry for the late response.
It seems that the issue is related to the "Address ISPEXEC" statement.
The current version of REXX grammar doesn't support it yet.

@RedGoldPhoenix
Copy link
Author

Hello Yuriy,
Happy new year 2022 ;)
I hope you are well
Do you have any news about this point

@mykael22000
Copy link

Getting the same thing.

On statement:

`
/* Open an output file for the year. */

file_name = 'calendar'||file_suffix

Say "Writing:" file_name

'rm' file_name

file_out = .stream~new(file_name) /* Create a stream object */

lf = "0A"x
`

It's flagging the .stream~new(file_name) statement with:

no viable alternative at input 'file_out = .'
mismatched input '~' expecting {<EOF>, STMT_INCLUDE, KWD_ADDRESS, KWD_ARG, KWD_BY, KWD_CALL, KWD_DIGITS, KWD_DO, KWD_DROP, KWD_ELSE, KWD_END, KWD_ENGINEERING, KWD_ERROR, KWD_EXIT, ...

The same line of code is repeated later in the file and it doesn't get flagged. I'd hazard some sort of initialization issue in the checking logic.

Code runs fine.

@zimlu02 zimlu02 added bug Something isn't working good first issue Good for newcomers labels Jul 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

4 participants