Home
Up

 

 

This is an introduction for those who would like to see behind the scenes. Or maybe try their hand at building their own custom documents.

All of the Legal Easy, Inc. documents are created using data supplied form the client’s data file. This data is formatted by form number and field number such as (F1.page.field).  Whenever a document is drafted the data is merged into the form supplied by the user. At this time, internal logic embedded in the form decides what data and format will be used.  This use of embedded logic in the forms, creates a very document centric approach to formatting the clients data. Only the forms are different from state to state and circuit to circuit, thus allowing specific documents to be generated for each case in each circuit.

 As an example the following will print the clients name
 Clients name is #F1.1# #F1.2# #F1.3#

This line will create a document with the following information
 “Clients name is Bob R Smith”

 With the us of Embedded logic we may change this output further
Clients name is ^IF(MR)Mr.^^IF(MRS)Mrs.^ #F1.1# #F1.2# #F1.3#

 Will create the following output.
“Clients name is Mr. Bob R Smith”

 As you can see this is a very powerful feature, allowing full control of the completed document. Lets look at a caption next to see this in operation

Sample:


 #START##RLF#
IN THE CIRCUIT COURT OF ^IFNOT(C.21)#SHOW(INFO,PLEASE_TYPE_COUNTY_AND_CITY_OF_CASE)#^^IFNOT(C.21)#QUERYHOST(98,1)#^#TOUP##C.21# COUNTY, MISSOURI

AT#TOUP# #C.2#

^IF(C.18=Petitioner)#INVAR(Pet,F1.1)# #STRCAT(Pet,_)##STRCAT(Pet,F1.2)##STRCAT(Pet,_ )##STRCAT(Pet,F1.3)##INVAR(PSSN,F1.4)#^^IF(C.18=Respondent)#INVAR(Pet,F4.1)# #STRCAT(Pet,_)##STRCAT(Pet,F4.2)##STRCAT(Pet,_ )##STRCAT(Pet,F4.3)##INVAR(PSSN,F4.4)#^#RLF#

#RLF#

^IF(C.18=Respondent)#INVAR(Resp,F1.1)# #STRCAT(Resp,_)##STRCAT(Resp,F1.2)##STRCAT(Resp,_)##STRCAT(Resp,F1.3)##INVAR(RSSN,F1.4)#^^IF(C.18=Petitioner)#INVAR(Resp,F4.1)# #STRCAT(Resp,_)##STRCAT(Resp,F4.2)##STRCAT(Resp,_)##STRCAT(Resp,F4.3)##INVAR(RSSN,F4.4)#^#RLF#

In Re the Marriage of:                                             

)

                                               

)

#Pet#,                                     

)

SSN: #PSSN#^IFNOT(PSSN)Unknown^,                                       

)

                                             Petitioner,                                           

)

            vs.

)  Case No. #C.1#^IFNOT(C.1)_______________^

#Resp#,                       

)

SSN: #RSSN#^IFNOT(RSSN)Unknown^,                

)

                                             Respondent.                 

)

^IF(C.18=Petitioner)^IF(MR)#INVAR(PSEX,his)##INVAR(RSEX,her)#^^IF(MRS)#INVAR(PSEX,her)##INVAR(RSEX,his)#^^#RLF#
^IF(C.18=Respondent)^IF(MR)#INVAR(RSEX,his)##INVAR(PSEX,her)#^^IF(MRS)#INVAR(RSEX,her)##INVAR(PSEX,his)#^^#END#


 As you can see this logic may become rather complicated in building your documents.

For more information on the Document  generation language please refer to the pages below.
 

HOW THE PARSER WORKS (LEFORMP):
The Parser is a left-right top down parser. During pass 1 all of the commands are evaluated and all replacements are replaced when encountered . On pass two all of the all trash is cleaned. During pass three the output file  is created and written in the directory given. 

DUMP FILE:
If you set the password to ADMIN then the parser will create a dump file to the EASY directory. The name of this file is LEDUMP.TXT, you can open up this file and examine all of the field numbers and their replacement values.

TRACE FILE:
Each time the parser is executed a trace file will be created in the EASY directory. The name of this file is LEFPTRACE.TXT. This file contains a trace of the parsing operations. This is turned on by using the password ADMIN.

RESERVED SYMBOLS:
The # sign and the ^ are reserved words. If you wish to use these in a document you must use the commands #POUND# and #CARET#.

VARIABLES:
All user assigned variables must have a unique name and that name. The names used over in an assignment operation. Once a variable is set through INVAR, MATH, INPUT the value it was set to remains through out the life of the document.  Or until used again by one of these commands

NOTE:            All Variable names may be 1 to 40 characters long.
NOTE2:          All Variables may contain up to 16Kb of data  characters

COMMAND FORMAT:
Simple commands with no arguments are formatted as #COMMAND#
Commands with arguments are formatted as #COMMAND(argList)#


SPECIAL RESERVED WORDS FOR PARSER:

#MR#                                      True if petitioner male

#MRS#                                    True if petitioner Female.

#NSTOCK#                            The number of stocks reported.

#NDEBIT#                              The number of debts reported.

#NACCNT#                            The number of Bank Accounts reported.

#NDC#                                    The number of dependent children.

#NEXC#                                 Number of time program executed.

#CTYPE#                                Client Type (1=HUSBAND, 2=WIFE,3=JOINt,4=SLPIT).

#UTYPE#                                User Type (1=ATTORNEY, 2=CLIENT, 3=SPOUSE,4=PRO_SE).

#DATAFILE#                          DataBase File Name (CLIENT DATA FILE).

#FORMSDIR#                        Forms Directory.

#DATADIR#                           Data Directory.

#DOCSDIR#                           Docs Directory.

#EASYDIR#                            Easy Directory.

#BAKDIR#                             Backup Directory.

#USERNAME#                       User Name.

#ESECURITY#                       Ehanced Security Enabled.

#GPID#                                   Process ID for Application (a unique number).

#AAVER#                               Attorneys Assistant Version. (7.0.0)

#MCHI#                                  Max Children.

#MREL#                                  Max Real estate.

#MVEH#                                 Max Vehicles.

#MACC#                                Max Bank Accounts.

#MSTO#                                 Max Stocks.    

#MDEB#                                 Max Debts.     

#MLFI#                                   Max Life Insurance.

#MOB#                                   Max Other Bennies.

#MEMP#                                 Max Employment.

#MLRS#                                  Max Living room assets.

#MDRS#                                 Max Dinning room assets.

#MKTS#                                 Max Kitchen assets.

#MBRS#                                 Max Bedroom assets.

#MBAS#                                 Max Bathroom assets.

#MGRS#                                 Max Garage assets.

#MOFS#                                 Max Office assets.

#MSPS#                                  Max Sports assets.

#MJWS#                                 Max Jewelry assets.

#MCOS#                                 Max Collectables.

#MSSS#                                  Max Storage assets.

#MOTH#                                 Max Other assets.

#RTN#                                    The Return Value From Functions such as Read, Write, if <0 then an ERROR happend.

#TOUP#                                  This will cause the next field replaced to be in caps.

#TOLOW#                              This will cause the next field to be in lower case.

#AMON#                                This will cause the next numeric filed to be replaced by an abbreviated Month.

#FMON#                                This will cause the next numeric field to be replaced by the full Month name.

#CIRCUIT#                             Circuit court/Division number. From STATE.TXT file in the INCLUDE directory. Example { MO.TXT }

#NUMTOTEXT1#                  This will cause the next numeric field to be replaced by text. Ending in (First, Second…).

#NUMTOTEXT2#                  This will cause the next numeric field to be replaced by text. Ending in (One, Two…).

#LNUM#                                 This is a counter.

#PNUM#                                 This is a counter same as LNUM in usage.

#RPNUM#                              Reset PNUM.

#RLNUM#                              Reset LNUM.

#DATE#                                  Gives today's date.

#YEAR#                                  Gives this year in XXXX format, Y2K compliant.

#PARA#                                  Show paragraph letters a-z.

#RPARA#                               Reset paragraph letters back to a

#PAGE#                                  Force a page break.

#DOCEND#                            Force a document end mark in RTF.

#RPAD(xx)#                            Will right pad the next replacement with xx spaces.

#LPAD(xx)#                            Will left pad the next replacement with xx spaces.

#EDIT(file)#                             Run the editor form the parser and open file for edit.

 INPUT(type,header,var)#

Use this to get info from the user when building forms. Text will be placed in the header. note that you must replace spaces with "_ "to format the text correctly. VarName may be any unique name for use in later substitution.

                                                [Type] is the type of input. SINGLE, MULTI, YESNO, LIST, MLIST, CALENDAR, MONETARY,FILE.

                                                [Header] is the text header to display on the dialog.

                                                NOTE: Header may be a variable.

                                                NOTE2: On type=FILE Header is the default directory.

#INPUT(type,ListData,header,var)#

[ListData] is used only on the LIST input type. All data in the list must be separated by ';'.

                                                 EXAMPLE:    

#INPUT(LIST,BLUE;RED;GREEN,Pick_A_Color,ColorVar)#

  #INCLUDE(primaryFile.ext, secondayFile.ext)#

                        This command will include another file into the document.

If an Include name contains [%c] Then the name will be converted using the county field in case information as name-CC-NNN where CC is the two digit county extension and nnn is the three digit index.

To ignore an error set parameter 2 to IGNORE, parsing will continue without errors if file not found.

 

#CARET#                                Will print the caret symbol "^".

 #POUND#                              Will print the "#" symbol.

 #TRACE(text)#                        Print text to the trace file.

 #PAGENUM(xx)#                   Print a page number.

 #RLF#                                     Remove the next line feed in document.

 #ALF#                                     Add the next line feed in document.

 #INVAR(var, value)#               Input to a Variable.

 #MATHI(var=Fx.x+Fy.y+1/2*3)#                   Integer math routine to assign to a variable up to 20 arguments may be used.

 #MATHF(var=Fx.x+Fy.y+1/2*3)#                  floating point math routine to assign to a variable up to 20 arguments may be used.

 #TAB#                         Place a TAB in Document.

 #TRUN(len)#                           Truncate next text to length stated.

 #TRUNS(len)#             Truncate Smart next text to length at space in sentence.

 #REM(text)#                            Add remarks to your document.

 #START#                                Used in include files to mark the start of the document.

 #END#                                    Used in include files to mark the end of a document.

 #SF1#-#SF5#                          Used to set FLAGS 1-5.

#CF1#-#CF5#                         Used to Clear Flags 1-5

 #FLAGn                                  Used to check the state fo flags 1-5. Where n may be 1-5.

 #SHOW(type,text/var)#           Display Information. Type may be either INFO or ALERT.

                                                 NOTE: text may be a variable.

 #CAP#                                     Capitalize the First Letter of the next substituted Text Field.

 #SAVE(var)#                           Save Variable var to data file.

 #REMOVE(var)#                     Remove Variable from data file.

 #REMOVEALL#                     Remove all variables from data file.


 TEXT STRING COMMANDS:

 #STRFORMAT(var, text, var)#           Used to Format a Text Field to a Variable. Use %s for format substitution. #STRFORMAT(var,MY_NAME_IS_%s_OK,name)#

 #STRCAT(var, var/text)#         Concatenate a text or variable to variable.

 #STRLEN(len, var/text)#          Get The length of a variable or text to len.

 #STRMID(result, start, len, var/text)#

Get the data string a start for length len. form text and place into variable result.

 

#STRPAR(result,token,string)# Parse a string on either of the following

                                                A space.

                                                A semi-colon.

                                                An under score “_”.

                                                A comma.

                                                Then place the result in result.

#NOEDIT#                              Do not run the editor after merge.

#INC(n)#                                 Increment n.

#DEC(n)#                                Decrement n.

#RPAGE#                                Remove next page break in document.

^IFVAR(var)^                         See if variable var exists.

^IFNOTVAR(var)^                 See if variable var does not exist.

#QUERYHOST(Form Number, Form Count)# Launch a Dialog Box.

                                    The Following are valid Forms.

                                    1          Client Information

4          Spouse Information.

6          Divorce Information

                                    7          Client Employment

                                    16        Spouse Employment

25                Child Information

60        Parenting Plan

                                    92                Courts Information for letters, do not set the client data.

93                Opposing Attorneys Information for letters only, do not set the client data.                                            

94                Attorney Information for letters, do not set the client data.

95                Guardian Ad Litem.

96                Opposing Attorneys.

97                Courts Information.

98                Case Information.

99                Attorney’s Information.

 

#REPEAT(n)#                          Repeat block n times.

#REPEATEND#                      End of repeat block.


FILE READ/WRITE/RUN FUNCTIONS:

#RUN(filename, arguments)#

                                                Filename is the program to run.

                                                Arguments are the data to be passed.

#READ(filename, variable)#

                                                Filename is the name of the file to read.

                                                Variable is the variable to put the data into.

#WRITE(filename, data, seek mode)#

                                                Filename is the name of the file to write data to.

                                                Data is the data to be written.

                                                SeekMode may be either BEGIN or END.

#CREATE(filename)#

                                                Filename is the name of the file to be created.

#DELETE(filename)#

                                                Filename is the name of the file to delete from disk.

NOTE ON MATH:      Math expressions are evaluated from left to right not in algebraic form. The algebraic form of this          evaluation would be as follows.

 

            #MATHI(Var=Fx.y+2*2/4)# would be Var = [ (Fx.y+2)*2 ] /4         ).

CONDITIONAL OPERATORS:

^IF(Fx.x > N) body^    If Fx.x is greater than N then.

^IF(Fx.x = N) body^    If Fx.x is equal to N then.

^IF(Fx.x < N) body^    If Fx.x is less than N then.

^IF(Fx.x >= N) body^  If Fx.x  is greater or equal to N then.

^IF(Fx.x<= N) body^   If Fx.x is less than or equal to N then.

Where N may be a literal number, a Field name, or a variable.

There is a special case of if where you may set one of the FLAGS (FLAG1/FLAG2)

SPECIAL IF  OPERATORS:

^IF(String ? subString) Body^ Used to find a subString inside of a String.

EMBEDDED CONDITIONAL OPERATORS:

Type of embedded IF statements.

^IF(exp)body1
                 ^IF(exp)body2 ^
                        ^IF(exp)body3 ^
            ^

^IF(exp)body1
                    ^ IF(exp) body2
                            ^ IF(exp) body123^^^

 

HOW TO IMPLEMENT AN (OR) EXPRESION:

            To Implement an OR type of expression use the flag commands

 

            ^IF(FLAG1,CF1)^                                          Make sure to clear the flag

            ^IF(x, SF1)                                                      Now set it on conditions

            ^IF(y>0, SF1)

            ^IF(z=YES, SF1)

            ^IF(FLAG1) If either X or Y or Z are true so then do this^

OUTPUT FILE EXTENSION:

The extension is now automatic on the output file. This means that you may use any of the following text formats for your forms. ".RTF", ".HTM", ".TXT" this will insure that your word processor will show the correct type of text.


Since there are over 36000 fields in the Attorneys Assistant data base you will use the Forms Wizard to help create the forms. this saves you from remembering all of the field names. That is if you should decide to build your own. If not let us write them for you. Contact Legal Easy, Inc. for custom documents for your office.

NOTE: To access forms for editing you must use the password (ADMIN) or use enhanced security.

 

 


Send mail to datkinson@legaleasy.com with questions or comments about this web site.
Copyright © 2002, 2003, 2004, 2005  Legal Easy, Inc.   Read Terms Of Use
Last modified: 04/26/05