monsterzero has asked for the wisdom of the Perl Monks concerning the following question:
use strict; use warnings; use HOP::Lexer 'string_lexer'; use Data::Dumper; my $document = join '', <DATA>; my @keywords = ( 'PRODUCT:', 'SUBJECT:', 'SUBMITTED BY:', 'SUBMITTED DATE:', 'IR #:', 'DOCUMENT ID:', 'PLATFORM:', 'OPERATING SYSTEM:', 'OS VERSION:', 'PRODUCT VERSION:' ); my @input_tokens = ( [ 'KEYWORD', qr/(?i:@{[join '|', map {$_} @keywords]})/ ], [ 'TEXT', qr/(.*)/, \&text ], ); my $lexer = string_lexer( $document, @input_tokens ); while ( defined( my $token = $lexer->() ) ) { my ( $label, $value ) = @$token; print $label, " => ", $value, "\n"; #print Dumper($token); } sub text { my ( $label, $value ) = @_; for ($value) { s/^\s+//; s/\s+$//; } return [ $label, $value ]; } __DATA__ PRODUCT: NX_Nastran SUBJECT: How can I multiply the displacement vector by a matrix? SUBMITTED BY: TOM ZHANG SUBMITTED DATE: 02/07/2006 IR #: 5395926 DOCUMENT ID: 001-5395926 PLATFORM: INTEL OPERATING SYSTEM: WINDOW OS VERSION: XP32_SP2 PRODUCT VERSION: V4.0 ====================================================================== +========= HARDWARE -------- Family : NX_NASTRAN Application : NASTRAN Function : DMAP Subfunction : ALL Release : V4.0 Platform : INTEL OS : WINDOW OS Version : XP32_SP2 SYMPTOM ------- This article discusses writing a DMAP that performs multiplication of +the displacement vector by a matrix. SOL 101 is used. The article discusse +s these concerns: 1. what data block is the displacement vector? 2. how to handle multiple subcases? 3. which print module to use SOLUTION -------- Answer: 1. The displacement vector is UG. It is generated in subDMAP SEDISP (y +ou can use DIAG 14 to print the whole thing in the f06 file and search for SE +DISP). You can put your alter in any place in SEDISP after it is created. A s +uggested entry point is after line 587. You can use something like ALTER 'CALL +SESUM' this is better than "ALTER 587' because the latter would break if the +subDMAP SEDISP changed. REFERENCES ---------------- ====================================================================== +========= -- End of document --
Does anyone know what I am doing wrong? ThanksD:\scripts>me4.pl KEYWORD => PRODUCT: TEXT => NX_Nastran TEXT => NX_Nastran KEYWORD => SUBJECT: TEXT => How can I multiply the displacement vector by a matrix? Can't use string (" How can I multiply the displace") as an ARRAY ref +while "str ict refs" in use at D:\scripts\me4.pl line 28, <DATA> line 52. D:\scripts>
Edited by planetscape - added readmore tags
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Using HOP::Lexer to parse a document
by runrig (Abbot) on Feb 09, 2006 at 01:41 UTC | |
Re: Using HOP::Lexer to parse a document
by GrandFather (Saint) on Feb 09, 2006 at 02:30 UTC | |
by runrig (Abbot) on Feb 09, 2006 at 16:46 UTC | |
by GrandFather (Saint) on Feb 09, 2006 at 20:36 UTC | |
by monsterzero (Monk) on Feb 09, 2006 at 19:23 UTC | |
Re: Using HOP::Lexer to parse a document
by runrig (Abbot) on Feb 11, 2006 at 01:47 UTC |